使用版本锁定防止有害的Linux更新

在我的家用电脑上运行Fedora,这是一个以位于Linux开发前沿而闻名的Linux发行版。我的笔记本电脑是Dell XPS 13,它使用了一些相当先进的硬件。在开源领域中,这种组合可能很危险:旧的Linux内核无法处理我的电脑的硬件,而全新的内核也可能破坏它。每次进行软件更新时,我都像走在钢丝上一样。
我处理这个问题的方式是使用一个名为versionlock的软件包管理器插件。它允许我告诉包管理器锁定某些软件包的当前版本,然后 voilà!我可以盲目地应用所有软件更新,并知道那些麻烦的软件包不会升级。
安装
versionlock插件适用于dnf和yum,因此请选择您的系统使用的包管理器。对于dnf
$ sudo dnf install python-dnf-plugins-extras-versionlock
对于yum
$ sudo yum install yum-plugin-versionlock
锁定软件包
要将软件包添加到锁定列表,只需使用包含versionlock和add命令的包管理器程序
$ sudo dnf versionlock add my-package
yum版本
$ sudo yum versionlock add my-package
如您所见,dnf和yum的命令相同。您可以在一个命令中锁定多个软件包。以下是我如何防止我的系统升级内核软件包的示例
$ sudo dnf versionlock add kernel-0:4.3.5-300.fc23 kernel-modules-0:4.3.5-300.fc23 kernel-core-0:4.3.5-300.fc23 kernel-devel-0:4.3.5-300.fc23
列出已锁定软件包
要查看哪些软件包被锁定,请使用list命令
$ dnf versionlock list
Last metadata expiration check: 0:00:00 ago on Mon Mar 21 20:58:57 2016.
kernel-0:4.3.5-300.fc23.*
kernel-modules-0:4.3.5-300.fc23.*
kernel-core-0:4.3.5-300.fc23.*
kernel-devel-0:4.3.5-300.fc23.*
解锁软件包
要从锁定列表中删除一个软件包,请使用delete
$ sudo dnf versionlock delete my-package
要从锁定列表中删除所有软件包,请使用clear
$ sudo yum versionlock clear
帮助
如果您忘记了这些命令,可以使用help命令列出可用的命令
$ dnf help versionlock
versionlock [add|exclude|list|delete|clear] [<package-nevr-spec>]
您需要多少安装程序?
在Fedora上,我还删除了Gnome Software程序(gnome-software软件包)。虽然通过GUI提醒待更新很有用,但通过Gnome Software安装的任何软件包都不是dnf历史记录的一部分。这使得在需要降级或删除麻烦软件包时更加困难。
结论
管理软件包可能会很痛苦,但版本锁定使生活更轻松。如果您使用Debian或Ubuntu,可以使用apt-mark hold my-package
和apt-mark unhold my-package
实现类似的效果。
这篇文章最初发表在PerlTricks.com上。
标签
反馈
这篇文章有什么问题吗?请在GitHub上打开一个问题或pull request,链接为GitHub