使用 apt-get 清理

2019-11-22 08:20:00

大多數使用基於 Debian 的系統的人通常會使用 apt-get 來安裝軟體包和升級,但是我們多久才清理一次?讓我們看下該工具本身的一些清理選項。

在基於 Debian 的系統上執行 apt-get 命令是很常規的。軟體包的更新相當頻繁,諸如 apt-get updateapt-get upgrade 之類的命令使此過程非常容易。另一方面,你多久使用一次 apt-get cleanapt-get autocleanapt-get autoremove

這些命令會在 apt-get 的安裝操作後清理並刪除仍在系統上但不再需要的檔案,這通常是因為需要它們的程式已經解除安裝。

apt-get clean

apt-get clean 命令清除遺留在 /var/cache 中的已取回的包檔案的本地倉庫。它清除的目錄是 /var/cache/apt/archives//var/cache/apt/archives/partial/。它留在 /var/cache/apt/archives 中的唯一檔案是 lock 檔案和 partial 子目錄。

在執行清理操作之前,目錄中可能包含許多檔案:

/var/cache/apt/archives/db5.3-util_5.3.28+dfsg1-0.6ubuntu1_amd64.deb/var/cache/apt/archives/db-util_1%3a5.3.21~exp1ubuntu2_all.deb/var/cache/apt/archives/lock/var/cache/apt/archives/postfix_3.4.5-1ubuntu1_amd64.deb/var/cache/apt/archives/sasl2-bin_2.1.27+dfsg-1build3_amd64.deb

之後,只會存在這些:

$ sudo ls -lR /var/cache/apt/archives/var/cache/apt/archives:total 4-rw-r----- 1 root root    0 Jan  5  2018 lockdrwx------ 2 _apt root 4096 Nov 12 07:24 partial/var/cache/apt/archives/partial:total 0                 <== 空

apt-get clean 命令通常用於根據需要清除磁碟空間,一般作為定期計劃維護的一部分。

apt-get autoclean

apt-get autoclean 類似於 apt-get clean,它會清除已檢索包檔案的本地倉庫,但它只會刪除不會再下載且幾乎無用的檔案。它有助於防止快取過大。

apt-get autoremove

apt-get autoremove 將刪除自動安裝的軟體包,因為某些其他軟體包需要它們,但是在刪除了其他軟體包之後,而不再需要它們。有時會在升級時建議執行此命令。

The following packages were automatically installed and are no longer required:  g++-8 gir1.2-mutter-4 libapache2-mod-php7.2 libcrystalhd3  libdouble-conversion1 libgnome-desktop-3-17 libigdgmm5 libisl19 libllvm8  liblouisutdml8 libmutter-4-0 libmysqlclient20 libpoppler85 libstdc++-8-dev  libtagc0 libvpx5 libx265-165 php7.2 php7.2-cli php7.2-common php7.2-json  php7.2-opcache php7.2-readlineUse 'sudo apt autoremove' to remove them.                       <==

要刪除的軟體包通常稱為“未使用的依賴項”。實際上,一個好的做法是在解除安裝軟體包後使用 autoremove,以確保不會留下不需要的檔案。