虽然说软件的更新,尤其是安全更新是很重要的,但是通常有些软件较大版本的升级总会伴随着软件功能的较大改变和很多兼容性问题,比如PHP等,也有一些在PPA源上较大的软件包下载会很慢,所以在日常的更新中阻止这些软件包的升级就很有必要了。
软件包有各种状态:“unknown”,“install”,“remove”,“purge”和“hold”。这些“希望”标记描述了用户打算如何操作这些软件包(既可以使用dselect的“Select”菜单,也可以直接调用dpkg)。 它们的意思是:
unknown – 用户并没描述他想对软件包进行什么操作。
有两种方法阻止软件包升级,使用dpkg,或者使用dselect。 使用dpkg,首先导出软件包选择列表:
dpkg --get-selections /* > selections.txt
接着编辑文件selections.txt,修改想要恢复的软件所在的行,例如libc6,则将:
libc6 install
libc6 hold
sudo dpkg --set-selections < selections.txt
sudo echo libc6 hold | dpkg --set-selections
sudo echo libc6 install | sudo dpkg --set-selections
使用dselect也可以达到同样的效果。进入[S]elect屏幕,找到想阻止其升级的软件包,按“=”键(或者“H”)。更改在你退出[S]elect屏幕后立即生效。 以上这都是WIKI上的内容,基本上直接贴了。
如果你想在Ubuntu中升级软件但又想保持其中的一个当前状态不变,即不被升级的话,你可以使用命令 dpkg, aptitude 或者 dselect来延迟升级/via |