Linux/本地源中舊軟件包的清理

本地源中舊軟件包的清理

編輯

ubuntu系統時常會有更新,過了一段時間在本地源里會積累下不少舊的軟件包,因為軟件包太多,不知道哪個該刪哪個不該刪。

在前面己經講過,系統下載的軟件包放在/var/cache/apt/archives目錄下。ubuntu提供了兩條條命令,來管理這個目錄里的軟件包。其中一條是

sudo apt-get autoclean

功能是,刪除這個目錄中己經不能再從你的軟件源中下載的軟件包。

在/etc/apt/sources.list檔案里存放着軟件源地址,在更新的時候會從這些地方下載從它們那裏能下載到的所有軟件包的資訊。這些源會更新自己的軟件包,這樣舊的版本就不會在它的軟件包列表裏。這樣使用這條命令就能刪除舊軟件包。

但是,我們的本地源里的軟件包不在那個目錄里呀。這個好辦,為本地源中軟件包所在資料夾Packages建立一個連結,方法是右鍵選單里選建立連結。然後因為權限問題用下面這條命令以超級用戶權限打開linux的檔案總管nautilus

sudo nautilus

用上面這條命令打開的窗口中將剛剛建立的連結剪下到/var/cache/apt/下,在原來的archives資料夾的檔名後面加個英文句號,這是為了便於恢復。然後把連結重新命名為archives。在linux下對連結進行操作和對原有檔案進行操作是一樣的。

然後,又有一個問題是,有一些軟件源里可能還留着幾個舊的軟件包,這樣用sudo apt-get autoclean就不能刪除所有舊的軟件包。還有可能在一些軟件源里提供的軟件包,在另一些軟件源里不提供,這樣如果軟件源有變動的話不是會刪除有用的軟件包嗎?

我們不是己經做了本地源嗎?在把新的軟件包放進去以後,重新掃描一下軟件資訊,這個可以看上面本地源的製作,掃描完以後你的本地源資訊里全是最新軟件包資訊,而且有用的軟件包一個不少。

下面要做的就是把原有軟件包信自全刪了,把本地源中的軟件包資訊匯入。可以先備分一下,軟件包資訊放在/var/lib/apt/lists。打開軟件源列表

sudo gedit /etc/apt/sources.list

先備分裏面的內容,然後全刪了,把你的本地源放進去,即把下面內容複製進去

deb file:///media/backup/binary-i386 intrepid main

然後更新軟件源資訊

sudo apt-get update

然後,在軟件源列表中不存在的源的資訊會被刪除,只剩下你本地源中的軟件包資訊。

現在再執行下面這條命令就可以了

sudo apt-get autoclean

完事以後,別忘了把系統恢復原樣。

再介紹一下另外一條指令

sudo apt-get clean

這條指令的功能是刪除/var/cache/apt/archives目錄下的所有軟件包,在做完本地源後為了節省空間可以用這條命令來刪除這個目錄里的軟件包。千萬別跟上面說的那條指令弄混了,不然的話你想哭都沒地方哭去。