跳至內容

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目錄下的所有軟體包,在做完本地源後為了節省空間可以用這條命令來刪除這個目錄里的軟體包。千萬別跟上面說的那條指令弄混了,不然的話你想哭都沒地方哭去。