我想阻止所有发行版提供的内核更新,因为讨厌的东西这件事最近发生在我身上。 (我使用的是 Ubuntu 12.04 amd64 衍生版本。)
我想阻止对linux-headers
、linux-headers-generic
、linux-image
和linux-image-extra
软件包的已安装次要版本 3.2 内核的所有更新。我遇到的问题是,这些都有一个版本,如果我阻止特定版本,则不会获得任何结果,因为将安装新版本(例如:如果我阻止linux-image-3.2.0-35
,linux-image-3.2.0-36
则不会被阻止,并且仍然可能使用dist-upgrade
来自apt
.)
答案1
您需要使用的是 apt-get 的一个功能,称为保持
您可以通过 Synaptic 或 Dpkg 来完成此操作,以下是我使用 dpkg 方法保存内核的方法。
首先检查您的内核映像名称
dpkg -l | grep linux-image
对我来说输出:
ii linux-image-3.2.0-4-amd64 3.2.35-2 amd64 Linux 3.2 for 64-bit PCs
ii linux-image-amd64 3.2+46 amd64 Linux for 64-bit PCs (meta-package)
然后告诉 dpkg 保存元包(没有任何版本号的通用版本)
echo linux-image-amd64 hold | sudo dpkg --set-selections
然后你可以通过检查这是否有效dpkg -l linux-image-amd64
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==========================-==================-==================-==========================================================
hi linux-image-amd64 3.2+46 amd64 Linux for 64-bit PCs (meta-package)
请注意底部的“hi”,h 表示已持有,i 表示当前安装。该软件包已安装,但将不会被升级。
您可以通过以下方式反转此操作
echo linux-image-amd64 install | sudo dpkg --set-selections
并再次可以通过检查dpkg -l linux-image-amd64
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==========================-==================-==================-==========================================================
ii linux-image-amd64 3.2+46 amd64 Linux for 64-bit PCs (meta-package)
注意“ii”,第一个 i 表示该软件包已设置为安装,第二个 i 表示当前已安装。该软件包已安装并将要被升级。
有关这些标志的更多信息,请man dpkg
具体参阅“包选择状态”部分。