云网牛站
所在位置:首页 > Linux教程 > 图解在Ubuntu中锁定软件包版本(不随系统更新而升级)的方法

图解在Ubuntu中锁定软件包版本(不随系统更新而升级)的方法

2018-10-28 10:11:15作者:SysGeeK稿源:系统极客网

本文介绍将某个软件包锁定在一个特定版本中,使它不随系统的更新而升级,将它固定在维护的老版本,适用于 Debian、Ubuntu、Linux Mint 操作系统下,实现这一目的,有三种常用的方法,下面为你图解说明。

 

需求背景

为什么要阻止软件包更新呢?通常是用户对某个软件版本有特定的需求,或更新之后会导致问题,所以才要维持特定版本不进行升级。例如:LotServer 就需要特定的 Linux Kernel 版本,我就是用 apt-mark 阻止内核升级的。

需要注意的是:如果你要保持特定版本的软件包被其它软件所依赖,那么阻止其升级可能会导致问题。因此,尽量不要将太多软件包固定在老版本,尤其是库。

 

方法1、使用 GUI 工具防止程序包更新(推荐该方法,图形操作更简单。)

新立得包管理器是一款用于 apt 的 GTK 图形包管理程序,可以用于锁定并阻止特定应用程序更新升级。

你可以使用以下命令安装 Synaptic Package Manager:

sudo apt install synaptic

在新立得中防止软件更新,请选中要锁定的软件包,在软件包菜单中勾选锁定版本选项。请看下面图示标号:

图解在Ubuntu中锁定软件包版本(不随系统更新而升级)的方法

如果要查看在 Synaptic 中已锁定的所有软件包,可以点击左侧状态,选择标记为永不升级的软件包进行查看。请看图示:

图解在Ubuntu中锁定软件包版本(不随系统更新而升级)的方法

需要注意的是:

1.使用新立得包管理器锁定的软件包并不能阻止 apt upgrade 或 apt-get upgrade 命令对应用程序的更新。

2.新立得包管理器中锁定的软件包仅能阻止 Ubuntu 软件或一些其它图形化包管理器对软件版本的升级。

3.新立得包管理器中锁定的软件包不能阻止 使用 Linux Mint Update Manager 更新软件包。

 

方法2、使用 apt-mark 锁定应用程序版本

使用 apt-mark 命令可以阻止 Ubuntu 软件和终端命令(apt upgrade 或 apt-get upgrade)对锁定的应用程序进行升级。

你可以使用以下命令锁定版本:

sudo apt-mark hold PACKAGE

可以使用以下命令检查标记为保留(锁定)的包:

sudo apt-mark showhold

要解除锁定可以使用如下命令:

sudo apt-mark unhold PACKAGE

图解在Ubuntu中锁定软件包版本(不随系统更新而升级)的方法

hold 和 unhold 参数后可以指定多个包,就像使用 apt 安装软件一样(用空格分隔开就行)。

 

方法3、使用 dpkg 防止软件包更新

此前有段时间一些不遵守规则的图形包管理器直接给忽略了 apt-mark 锁定的软件(好加在我没中招),为了保险和一些在使用老旧 Debian、Ubuntu、Linux Mint 版本的用户,还可以使用 dpkg 防止软件包更新。

要使用 dpkg 阻止程序包升级,请使用:

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

你可以使用以下命令查看所有 hold 的软件包:

dpkg --get-selections | grep hold

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

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

图解在Ubuntu中锁定软件包版本(不随系统更新而升级)的方法

与 apt-mark 不同,此方法不允许一次指定多个包。

 

结语

以上就是在 Debian、Ubuntu、Linux Mint 下锁定软件包的方法,可以参考在Ubuntu系统上软件锁定版本不更新的方法一文。如果是在Deepin系统中要固定软件包版本请看 Deepin降级保护措施的实现方法

 

相关主题

使用相应的命令在Linux中查看软件包的详细信息

精选文章
热门文章