如何在 Debian 中锁定软件包版本

Debian 或基于 Debian/Ubuntu 的 Linux 发行版系统中,有多种方法可以将软件包锁定在一个特定的版本。也就是说,可以将某个软件固定维护在指定版本,不让其随系统更新而更新。

为什么要锁定软件包,防止软件包更新呢?

通常是用户对某个软件版本有特定的需求,或更新期间、更新后可能会导致问题,所以需要维持特定的版本不进行升级。在常见的数据类服务中,这样的需求很有代表性,比如缓存Redis、数据队列RabbitMQ等。还有部分服务依赖于系统中特定的软件,比如指定的 Linux 内核版本,这时就需要锁定内核版本防止因内核升级导致服务异常。

我们这里介绍两种方式,防止软件包被更新。需要注意的是,如果软件包被其他软件所依赖,阻止其更新,可能会导致关联问题。建议将尽量少的的软件包锁定不更新,尤其是系统中的共享库文件。

方法一: 使用 apt-mark 锁定应用程序

使用 apt-mark 命令可以阻止命令(比如 apt upgrade 或 apt-get upgrade)对锁定的应用程序进行升级。你可以使用以下命令,管理锁定的软件:

sudo apt-mark hold PACKAGE_NAME  #锁定软件版本。可以一次指定多个包
sudo apt-mark showhold #显示系统中被标记为锁定的软件包
sudo apt-mark unhold PACKAGE_NAME #解除对软件包的锁定。可以一次指定多个包。
如何在 Debian 中锁定软件包版本

方法二:使用 dpkg 防止软件包更新

有一些不遵守规则的图形包管理器,会忽略 apt-mark 锁定的软件,为了保险起见,我们还可以使用 dpkg 防止软件包更新。使用样例如下:

echo "PACKAGE hold" | sudo dpkg --set-selections  ##锁定软件包
dpkg --get-selections | grep hold ##显示锁定的软件包列表
echo "PACKAGE install" | sudo dpkg --set-selections ##解除对软件包的锁定
如何在 Debian 中锁定软件包版本

与 apt-mark 不同的是,此方法一直只能指定一个软件包。

继续阅读
avatar
  • 本文由 发表于 2019年1月9日
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Debian 如何安装无线网卡驱动 开发者

Debian 如何安装无线网卡驱动

在安装 Debian 10 的时候提示没有iwlwifi驱动,因为当时没有安装有 iwlwifi 的驱动盘,跳过后开机发现没有 wifi。这里我们将介绍,有线网正常的状态下,如何下载安装 iwlwif...
avatar
已有 0 条评论 新浪微博