Debian/Ubuntu清理硬盤空間的8個技巧
在前一篇文章中,我介紹了如何在ubuntu系統上刪除舊的Linux內核以騰出硬盤空間.現在,我整合我所了解的其他清理硬盤空間的技巧,分享給大家.下面介紹的是 Debian/Ubuntu類Linux發行版磁盤空間不足的8個解決方法。
1. 刪除殘余的配置文件
通常Debian/Ubuntu刪除軟件包可以用兩條命令
sudo apt-get remove <package-name> sudo apt-get purge <package-name>
remove將會刪除軟件包,但會保留配置文件.purge會將軟件包以及配置文件都刪除.
找出系統上哪些軟件包留下了殘余的配置文件
dpkg --list | grep "^rc"
其中第一欄的rc表示軟件包已經刪除(Remove),但配置文件(Config-file)還在. 現在提取這些軟件包的名稱.
dpkg --list | grep "^rc" | cut -d " " -f 3
刪除這些軟件包
dpkg --list | grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge
(Reading database ... 64538 files and directories currently installed.) Removing libapt-inst1.4:amd64 (0.8.16~exp12ubuntu10.11) ... Purging configuration files for libapt-inst1.4:amd64 (0.8.16~exp12ubuntu10.11) ... Removing libbind9-80 (1:9.8.1.dfsg.P1-4ubuntu0.6) ... Purging configuration files for libbind9-80 (1:9.8.1.dfsg.P1-4ubuntu0.6) ...
如果你只想刪除某個軟件包的配置文件,那么可以使用下面的命令
sudo dpkg --purge <package-name>
2. 刪除沒有用的deb軟件安裝包
通常我們用sudo apt-get install 命令安裝軟件包后,apt-get下載的deb安裝包會保留在系統上.所以如果你經常安裝軟件,那么這些deb安裝包會占據大量的空間.這些安裝包在/var/cache/apt/archives目錄下。在軟件安裝完成后,這些deb安裝包就沒什么用了。對於硬盤容量有限的服務器來說apt-get clean命令可以騰出很多空間。你可以輸入下面的命令來查看/var/chace/apt/archives目錄下deb安裝包的總大小
du -sh /var/cache/apt/archives
要刪除這些deb包,只需要運行下面兩個命令就行了.
sudo apt-get clean sudo apt-get autoclean
3. 刪除孤兒軟件包
有時候,你用apt-get安裝一個軟件包時會自動安裝其他的依賴.當你刪除掉這個軟件包時,這些依賴也就沒有用處了.這些沒有用的依賴包叫做孤兒軟件包,可以用下面的命令刪除
sudo apt-get autoremove
不過apt-get autoremove只會刪除經apt-get自動安裝的依賴包,而你自己手動安裝的依賴包則不會被刪除,這時我們可以用deborphan來徹底刪除.
sudo apt-get install deborphan
列出孤兒軟件包
deborphan
將它們刪除
deborphan | xargs sudo apt-get purge -y
4. 刪除過時的軟件包
所謂過時(obsolete)的軟件包是指/etc/apt/sources.list源文件中沒有任何一個軟件源提供這個軟件的deb安裝包.也就是說這個軟件包在軟件源里找不到了,不被支持了.這可能是因為下面幾個原因:
- 上游開發者不維護這個軟件,又沒有人來接管這個軟件的開發.所以Debian/Ubuntu的軟件包維護人員決定將這個軟件從軟件源中刪除.
- 這個軟件成了孤兒,同時用戶很少.所以它就從軟件源里消失了.
- 這個軟件有了一個新的名字,維護人員給它起了一個新的名字並保留舊軟件包.
因為這些過時的軟件不會有安全更新了,而且搞不好會在軟件升級過程中引來麻煩,所以我們需要將它們刪除.首先找出哪些軟件包是過時的
sudo aptitude search ?obsolete
我的輸出結果
i linux-image-3.2.0-29-generic - Linux kernel image for version 3.2.0 on 64
將它刪除
sudo apt-get purge linux-image-3.2.0-29-generic
你也可以使用下面的命令將所有過時的軟件包一下清除
sudo aptitude purge ~o
不過需要注意的是,有些軟件包雖然在軟件源里找不到,但它並不是過時的軟件包.比如你自己下載安裝的ubuntu-tweak.ubuntu-tweak需要你從官網下載deb安裝包,但不提供軟件源.用上面這條命令會將這類軟件包也刪除.所以我建議使用apt-get purge,自己選擇需要刪除的軟件包.
5. 清理日志文件
日志文件會變得越來越大,我們可以用ncdu工具來查看大日志文件.
sudo apt-get install ncdu sudo ncdu /var/log
從上圖可以發現,shadowsocks.log占用了24.5MiB的硬盤空間,我們可以用下面的命令來清空這個日志文件的內容.
sudo dd if=/dev/null of=/var/log/shadowsocks.log
6. baobab硬盤空間用量分析工具
baobab是一個圖形界面工具,可以幫助我們查找系統中哪個目錄或文件占據了大量空間.在終端里運行下面的命令
baobab
從上圖中可以發現,thunerbird里的郵件就有14.3GB的大小!還有chromuim瀏覽器,Spotify音樂播放器,谷歌瀏覽器,縮略圖,這些緩存(cache)也占用了不少空間.
其實我們也可以用上面所提到了ncdu工具來查看大容量目錄和文件.比如查看/home/<username>/
sudo ncdu /home/<username>
不過用ncdu的話,每查看一個目錄就要輸入一次命令,建議在服務器上用ncdu,在桌面版本用圖形化的baobab工具.
7. 刪除大容量軟件包
首先安裝debian-goodies
sudo apt-get install debian-goodies
然后輸入下面的命令
dpigs -H
我的輸出結果
441.0M texlive-latex-extra-doc 230.1M valgrind-dbg 200.6M chromium-browser 171.4M google-chrome-stable 153.4M linux-image-extra-3.19.0-39-generic 153.4M linux-image-extra-3.19.0-37-generic 151.5M maltego 144.8M wine1.7-amd64 140.6M metasploit-framework 137.4M wine1.7-i386
接下來你就可以刪除你不用的軟件包了.上面的命令默認只會顯示前10個結果,你可指定結果的個數,比如20個
dpigs -H --lines=20
8. 使用ubuntu-tweak來清理
前往ubuntu-tweak官網下載deb安裝包,然后輸入下面的命令安裝.
sudo apt-get install gdebi sudo gdebi ubuntu-tweak*.deb
打開ubuntu tweak后,選擇Janitor標簽.在這里你可以清理應用程序的緩存,縮略圖緩存,apt緩存,舊內核,沒有用的軟件包配置文件,以及孤兒軟件包.
以上就是解決Linux磁盤空間不足的8個技巧。