有时,由于某些应用依赖性,你可能会意外更新不想更新的软件包。这在全系统更新或自动包升级时经常会发生。如果发生这种情况,可能会破坏应用的功能。这会造成严重的问题,你需要花费大量时间来解决问题。 如何避免这种情况?如何从 apt-get 更新中排除软件包?
是的,可以在 Debian 和 Ubuntu 系统上使用以下三种方法来完成。
我们将分别详细展示。 方法 1:如何使用 apt-mark 命令排除 Debian/Ubuntu 系统上的软件包更新apt-mark 用于将软件包标记/取消标记为自动安装。 hold 选项用于将软件包标记为保留,以防止软件包被自动安装、升级或删除。 unhold 选项用于取消先前面的设置,以允许重复执行所有操作。 运行以下命令以使用 apt-mark 命令保留指定的软件包。 $ sudo apt-mark hold nanonano set on hold. 保留软件包后,请运行以下 apt-mark 命令查看它们。
这表明在执行完整的系统更新时,不会升级 nano 包。 $ sudo apt updateReading package lists… DoneBuilding dependency treeReading state information… DoneCalculating upgrade… DoneThe following packages have been kept back: nano0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 运行以下命令,使用 apt-mark 命令取消保留 nano 包。
方法 2:如何使用 dpkg 命令在 Debian/Ubuntu 系统上排除软件包更新dpkg 命令是一个 CLI 工具,用于安装、构建、删除和管理 Debian 软件包。dpkg 的主要且更用户友好的前端是 aptitude。 运行以下命令使用 dpkg 命令阻止给定的软件包。 语法: $ echo 'package_name hold' | sudo dpkg --set-selections 运行以下 dpkg 命令以保留 apache2 包。
保留软件包后,请运行以下命令查看它们。 $ sudo dpkg --get-selections | grep 'hold'apache2 hold 它会显示在执行完整的系统更新时,不会升级 apache2包。
运行以下命令,使用 dpkg 命令取消对指定软件包的保留。 语法: $ echo 'package_name install' | sudo dpkg --set-selections 运行以下命令,使用 dpkg 命令取消保留 apache2 包。
方法 3:如何使用 aptitude 命令排除 Debian/Ubuntu 系统上的软件包更新aptitude 命令是 Debian 及其衍生版本的基于文本的软件包管理界面。 它允许用户查看软件包列表并执行软件包管理任务,例如安装、升级和删除软件包。它可以从可视界面或命令行执行操作。 运行以下命令,使用 aptitude 命令保留指定的软件包。 $ sudo aptitude hold python3 保留某些软件包后,请运行以下命令查看它们。
这表明在执行完整的系统更新时,不会升级 python3 软件包。 $ sudo apt updateReading package lists… DoneBuilding dependency treeReading state information… DoneCalculating upgrade… DoneThe following packages have been kept back: python30 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 使用 aptitude 命令运行以下命令以解除对 python3 软件包的保留。
via: https://www./debian-ubuntu-exclude-hold-prevent-packages-from-apt-get-upgrade/ |
|