大多數使用基於 Debian 的系統的人通常會使用 apt-get 來安裝軟體包和升級,但是我們多久才清理一次?讓我們看下該工具本身的一些清理選項。
在基於 Debian 的系統上執行 apt-get
命令是很常規的。軟體包的更新相當頻繁,諸如 apt-get update
和 apt-get upgrade
之類的命令使此過程非常容易。另一方面,你多久使用一次 apt-get clean
、apt-get autoclean
或 apt-get autoremove
?
這些命令會在 apt-get
的安裝操作後清理並刪除仍在系統上但不再需要的檔案,這通常是因為需要它們的程式已經解除安裝。
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 clean
,它會清除已檢索包檔案的本地倉庫,但它只會刪除不會再下載且幾乎無用的檔案。它有助於防止快取過大。
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
,以確保不會留下不需要的檔案。