使用dpkg阻止内核更新


16

由于最近发生的一件令人讨厌的事情,我想阻止所有发行版本的内核更新。(我使用的是Ubuntu 12.04 amd64衍生产品。)

我想阻止所有更新的次版本3.2安装内核的linux-headerslinux-headers-genericlinux-image,和linux-image-extra包。我遇到的问题是它们都具有一个版本,如果我阻止一个特定的版本,将不会获得任何收益,因为将安装一个新版本(例如:如果我阻止了linux-image-3.2.0-35linux-image-3.2.0-36则不会被阻止,并且仍然可能使用dist-upgradefrom 来安装apt


请注意,这在Ubuntu 16.04中不再起作用。您需要使用以下指南将软件包列入黑名单:help.ubuntu.com/lts/serverguide/automatic-updates.html
user199618 '16

Answers:


17

您需要使用的是apt-get的功能,称为holding

您可以通过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保存metapackage(没有任何版本号的通用版本)

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“程序包选择状态”部分。


1
我的图片名称在这里。我要禁止“ linux-image-generic”吗?
Naftuli Kay

1
@TKKocheran是的;您想保留元数据包,而不是特定版本。
cjh

无效-dpkg:警告:软件包不在状态或第1行中没有可用的数据库:linux-image-amd64 dpkg:警告:发现未知的软件包;这可能意味着可用数据库已过时,需要通过前端方法进行更新;请参阅常见问题解答< wiki.debian.org/Teams/Dpkg/FAQ >
Arturas M
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.