ubuntu阻止軟件包升級(指定的軟件包不升級)

雖然說軟件的更新,尤其是安全更新是很重要的,但是通常有些軟件較大版本的升級總會伴隨着軟件功能的較大改變和很多兼容性問題,比如PHP等,也有一些在PPA源上較大的軟件包下載會很慢,所以在日常的更新中阻止這些軟件包的升級就很有必要了。

  • 軟件包狀態

軟件包有各種狀態:“unknown”,“install”,“remove”,“purge”和“hold”。這些“希望”標記描述了用戶打算如何操作這些軟件包(既可以使用dselect的“Select”菜單,也可以直接調用dpkg)。

它們的意思是:

unknown – 用戶並沒描述他想對軟件包進行什麼操作。
install – 用戶希望對軟件包進行安裝或升級。
remove – 用戶希望刪除軟件包,但不想刪除任何配置文件。
purge – 用戶希望完全刪除軟件包,包括配置文件。
hold – 用戶希望軟件包保持現狀,例如,用戶希望保持當前的版本,當前的狀態,當前的一切。

  • 阻止軟件包升級

有兩種方法阻止軟件包升級,使用dpkg,或者使用dselect。

使用dpkg,首先導出軟件包選擇列表:

 

dpkg --get-selections /* > selections.txt

 

接着編輯文件selections.txt,修改想要恢復的軟件所在的行,例如libc6,則將:

libc6 install
改爲:

libc6 hold
保存文件,將它裝入dpkg數據庫:


或者,如果知道要恢復的軟件包名稱,就可以不搜索軟件包名稱了,執行:

sudo dpkg --set-selections < selections.txt

 


這個命令將在每個軟件包安裝過程中保持該軟件包不變。

sudo echo libc6 hold | dpkg --set-selections

 


這個命令即可恢復軟件包libc6的升級。

sudo echo libc6 install | sudo dpkg --set-selections

 

使用dselect也可以達到同樣的效果。進入[S]elect屏幕,找到想阻止其升級的軟件包,按“=”鍵(或者“H”)。更改在你退出[S]elect屏幕後立即生效。

以上這都是WIKI上的內容,基本上直接貼了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章