从apt升级中排除/保留/阻止特定软件包的三种方法

系统 Linux
有时,由于某些应用依赖性,你可能会意外更新不想更新的软件包。这在全系统更新或自动包升级时经常会发生。如果发生这种情况,可能会破坏应用的功能。这会造成严重的问题,你需要花费大量时间来解决问题。

[[318609]]

有时,由于某些应用依赖性,你可能会意外更新不想更新的软件包。这在全系统更新或自动包升级时经常会发生。如果发生这种情况,可能会破坏应用的功能。这会造成严重的问题,你需要花费大量时间来解决问题。

如何避免这种情况?如何从 apt-get 更新中排除软件包?

如果你要从 Yum Update 中排除特定软件包,请参考这篇。

是的,可以在 Debian 和 Ubuntu 系统上使用以下三种方法来完成。

我们将分别详细展示。

方法 1:如何使用 apt-mark 命令排除 Debian/Ubuntu 系统上的软件包更新

apt-mark 用于将软件包标记/取消标记为自动安装。

hold 选项用于将软件包标记为保留,以防止软件包被自动安装、升级或删除。

unhold 选项用于取消先前面的设置,以允许重复执行所有操作。

运行以下命令以使用 apt-mark 命令保留指定的软件包。

  1. $ sudo apt-mark hold nano
  2. nano set on hold.

保留软件包后,请运行以下 apt-mark 命令查看它们。

  1. $ sudo apt-mark showhold
  2. nano

这表明在执行完整的系统更新时,不会升级 nano 包。

  1. $ sudo apt update
  2.  
  3. Reading package lists Done
  4. Building dependency tree
  5. Reading state information Done
  6. Calculating upgrade Done
  7. The following packages have been kept back:
  8. nano
  9. 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

运行以下命令,使用 apt-mark 命令取消保留 nano 包。

  1. $ sudo apt-mark unhold nano
  2. Canceled hold on nano.

方法 2:如何使用 dpkg 命令在 Debian/Ubuntu 系统上排除软件包更新

dpkg 命令是一个 CLI 工具,用于安装、构建、删除和管理 Debian 软件包。dpkg 的主要且更用户友好的前端是 aptitude

运行以下命令使用 dpkg 命令阻止给定的软件包。

语法:

  1. $ echo "package_name hold" | sudo dpkg --set-selections

运行以下 dpkg 命令以保留 apache2 包。

  1. $ echo "apache2 hold" | sudo dpkg --set-selections

保留软件包后,请运行以下命令查看它们。

  1. $ sudo dpkg --get-selections | grep "hold"
  2. apache2 hold

它会显示在执行完整的系统更新时,不会升级 apache2包。

  1. $ sudo apt update
  2.  
  3. Reading package lists Done
  4. Building dependency tree
  5. Reading state information Done
  6. Calculating upgrade Done
  7. The following packages have been kept back:
  8. apache2
  9. 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

运行以下命令,使用 dpkg 命令取消对指定软件包的保留。

语法:

  1. $ echo "package_name install" | sudo dpkg --set-selections

运行以下命令,使用 dpkg 命令取消保留 apache2 包。

  1. $ echo "apache2 install" | sudo dpkg --set-selections

方法 3:如何使用 aptitude 命令排除 Debian/Ubuntu 系统上的软件包更新

aptitude 命令是 Debian 及其衍生版本的基于文​​本的软件包管理界面。

它允许用户查看软件包列表并执行软件包管理任务,例如安装、升级和删除软件包。它可以从可视界面或命令行执行操作。

运行以下命令,使用 aptitude 命令保留指定的软件包。

  1. $ sudo aptitude hold python3

保留某些软件包后,请运行以下命令查看它们。

  1. $ sudo dpkg --get-selections | grep "hold"
  2. 或者
  3. $ sudo apt-mark showhold
  4.  
  5. python3

这表明在执行完整的系统更新时,不会升级 python3 软件包。

  1. $ sudo apt update
  2.  
  3. Reading package lists Done
  4. Building dependency tree
  5. Reading state information Done
  6. Calculating upgrade Done
  7. The following packages have been kept back:
  8. python3
  9. 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

使用 aptitude 命令运行以下命令以解除对 python3 软件包的保留。

  1. $ sudo aptitude unhold python3

 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2019-09-09 15:13:19

Yum包管理器Linux

2023-08-15 08:01:07

Go 语言排序

2022-11-29 13:53:02

2024-08-22 12:35:47

2009-07-08 12:56:32

编写Servlet

2011-06-10 10:43:12

Ubuntu应用安装

2009-06-23 10:45:18

Hibernate支持

2022-07-25 10:20:39

apt 命令Ubuntu软件包

2010-03-15 09:55:08

Ubuntu 8.04

2021-07-27 12:38:07

Kubernetes攻击者勒索软件

2014-04-01 10:38:09

Linux操作系统

2009-12-11 18:49:39

预算编制博科资讯

2010-09-14 15:10:49

CSS注释

2022-07-13 16:06:16

Python参数代码

2011-04-18 15:32:45

游戏测试测试方法软件测试

2024-11-15 07:00:00

Python发送邮件

2023-08-14 17:58:13

RequestHTTP请求

2020-06-17 10:52:00

DDoS攻击网络攻击网络安全

2010-09-08 13:29:48

CSS

2016-10-12 13:53:38

JavaByteBufferRandomAcces
点赞
收藏

51CTO技术栈公众号