跳至內容

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