如何防止软件包在Ubuntu,Debian或Linux Mint上更新 [APT]

有几种方法可以防止软件包在Debian,Ubuntu,Linux Mint,基本OS和其他基于Debian / Ubuntu的Linux发行版上更新。本文介绍了三种从升级中排除存储库软件包的方法。
阻止更新软件包的原因如果您安装的软件包的版本早于Debian,Ubuntu或Linux Mint存储库中可用的版本,或者知道某些更新导致了此问题,假设您要升级减去的内容(或几个,…)。
下面显示一个示例。我在Chromium浏览器上使用了来自Ubuntu 18.10上Saiarcot895-dev PPA的硬件加速补丁。为了使硬件加速与Nvidia驱动程序一起使用,需要修补的vdpau-va-driver驱动程序包。对于最新的Ubuntu 18.10,此PPA中尚不提供此功能。幸运的是,可以在Ubuntu 18.10上安装Ubuntu 18.04程序包,但是使用“ apt upgrade”或“软件更新程序”进行升级将升级此程序包,这是不希望的。因此,在这种情况下,如果您不升级此软件包,则可以不用担心而升级所有其他软件包。
如果您使用的软件包用作另一个可以升级的软件包的依赖项,请注意,防止某个软件包将来进行升级可能会在某些情况下引起问题。同一系列中的内容:如何在Debian,Ubuntu或Linux Mint中从命令行搜索可用的软件包 [APT]
这是防止在Debian,Ubuntu和Linux Mint.1上更新软件包的三种方法。使用GUI阻止软件包更新:Synaptic软件包管理器
Synaptic Package Manager是apt的Gtk图形软件包管理器,可以锁定软件包以防止更新。用Synaptic锁定软件包不允许从命令行进行更新。 apt upgradeapt-get upgrade 用Synaptic锁定的软件包将继续升级。用Synaptic锁定软件包将阻止您使用Ubuntu Software Updater应用程序以及某些情况下的其他图形软件包管理器升级软件包。但是,不妨碍使用Linux Mint Update Manager应用程序更新软件包。结果,建议使用 apt-markdpkg (请参阅下文)以防止更新软件包。
您可以使用以下命令安装Synaptic Package Manager:

sudo apt install synaptic

为了防止使用Synaptic更新软件包,请搜索该软件包,选择该软件包,然后从Synaptic菜单中单击 Package -> Lock Version

同样,您可以解锁软件包。
单击以查看所有被Synaptic锁定的软件包 Status 点击左下角的 PinnedStatus 栏目:Synapse show lock(固定)包2.用于防止软件包被更新 apt-mark
通过防止软件包使用apt-mark进行更新,使用Ubuntu软件更新程序进行更新和命令行升级(apt upgrade / apt-get upgrade)。
您可以保留该软件包以免将来升级(并自动删除)。 apt-mark 使用此命令:

sudo apt-mark hold PACKAGE

交换 PACKAGE 使用要为其暂停更新的软件包。
查看哪些包装被标记 hold 使用(因此,未更新):

apt-mark showhold

要删除保留(以便可以更新软件包),请使用:

sudo apt-mark unhold PACKAGE

对于两者 holdunhold 可以指定多个软件包,就像安装软件时一样 apt (用空格分开包装)3。防止软件包更新 dpkg
不久前,有几个图形化软件包管理器忽略了apt-mark的保持状态。我不确定这是否仍然适用,但是以防万一(如果您使用的是较旧的Debian / Ubuntu / Linux Mint版本),这是防止在Ubuntu,Linux Mint或Debian上更新软件包的另一种方法显示。 dpkg。
为防止使用dpkg升级软件包,请使用:

echo "PACKAGE hold" | sudo dpkg --set-selections

交换 PACKAGE 使用要为其暂停更新的软件包。
您可以使用以下命令查看所有程序包保全:

dpkg --get-selections | grep hold

要删除保留(并允许软件包升级),请使用:

echo "PACKAGE install" | sudo dpkg --set-selections

不像 apt-mark,此解决方案不允许您一次指定多个软件包。

Sidebar