如何防止包在 Arch Linux 中被更新

在您的 Arch 机器上进行系统更新后,软件包是否在起作用? 也许您安装了最新版本的 Linux 内核,但之后无法启动您的计算机。 不管是什么原因,阻止稳定包升级到最新的不稳定版本总是一个好主意。

Pacman,基于 Arch 的发行版上的默认包管理器,允许您通过简单地编辑包来忽略包升级 pacman.conf 文件。 这篇文章是关于防止特定软件包在 Arch Linux 上永久和临时升级的。

为什么要阻止 Arch Linux 上的软件包升级?

Arch Linux 是一个滚动发布的发行版,这意味着一旦软件包开发人员发布了新的更新,就会发布新的更新。 这使开发人员有更少的时间来测试包,从而增加了代码中出现错误和其他问题的机会。

如果您知道某个特定的软件包版本已经过测试并且不太可能被破坏,您可以阻止它升级。 这可确保您无论想要多长时间都可以享受测试包的稳定性,同时仍然可以选择随时更新它。

升级特定软件包后,您可能还会遇到系统问题。 在这种情况下,最好将其降级到以前的稳定版本,并防止使用 Pacman 进一步升级。

如何忽略更新包

为了防止 Arch Linux 上的软件包升级,您将编辑一个名为 pacman.conf. 它是 Arch Linux 包管理器 Pacman 的主要配置文件。

首先使用您选择的 Linux 文本编辑器打开 pacman.conf 文件。

sudo vim /etc/pacman.conf

向下滚动直到找到评论:“Pacman 不会升级 IgnorePkg 和 IgnoreGroup 成员中列出的软件包。”

取消注释它下面的行并在之后添加您不想升级的包 等于 符号 (=)。

IgnorePkg = nano

要添加多个包,只需列出它们,同时将两个连续的包分开 空间.

IgnorePkg = nano vim linux

上述命令将阻止 nano、vim 和当前的 Linux 内核进一步升级。 Save 完成文件编辑后退出 Vim。

当您尝试手动升级忽略的软件包时(使用 pacman -S 包名),Pacman 会通知您该软件包是 IgnorePkg 的一部分,并询问您是否仍要升级它。 然后,您可以根据需要选择覆盖 IgnorePkg 语句。

要忽略整个软件包组的升级,请在 pacman.conf 文件中添加 IgnoreGroup 语句。

IgnoreGroup = kde-applications

当软件包的不稳定版本被修复后,您可以通过简单地从 IgnorePkg 和 IgnoreGroup 语句中删除软件包名称来消除升级限制。

暂时从系统升级中排除软件包

对于某些用户而言,永久禁止特定软件包进行升级可能不是最佳解决方案。 如果您只想忽略一次软件包升级,请使用 – 忽视 pacman 命令中的标志。

为了 example,以防止在系统升级期间更新 Linux 内核:

sudo pacman -Syyu --ignore=linux

指定以逗号分隔的包列表以忽略多个包的升级。

sudo pacman -Syyu --ignore=linux,vim,nano

同样,您也可以使用 –忽略组 旗帜。

sudo pacman -Syyu --ignoregroup=kde-applications

要更新软件包,只需再次运行该命令而不使用 – 忽视–忽略组 标志。

Linux 让您完全控制您的系统

使用 Linux,您可以期望看到这样的属性提供了遍布各处的细粒度控制。 您可以忽略特定的包升级、降级包,甚至可以将自己的包添加到 Arch 用户存储库。

如果您来自基于 Debian 或 RHEL 的发行版并且是 Arch Linux 的新手,那么您可能不熟悉 AUR。 AUR 是 Arch Linux 受到许多用户青睐的主要原因之一。