在 Yum 和 DNF 中禁用或锁定软件包更新的 4 种方法

包管理器是允许用户安装新软件、升级系统或更新特定软件以及其他任务的软件。在软件通常具有许多依赖项,必须存在于系统上才能完成安装,因此包管理器等工具对于每个系统都至关重要。

附带了用于上述功能的默认包管理器,但最常见的是:在(它被替换为从软呢帽 22+开始)和在。

如果您正在寻找易于用于阻止或禁用某些特定软件包更新的工具Ubuntu/Debian系统,那么你应该阅读这篇文章。

丹化百胜餐饮集团) 正在替换Fedora 系统,这是我们列表中的另一个系统。如果探索得当,这些包管理器可用于以下功能:

  • 从存储库安装新软件。
  • 通过在安装软件之前安装这些依赖项来解决软件的依赖项。
  • 维护每个软件的依赖关系数据库。
  • 降级任何现有软件的版本。
  • 升级内核版本。
  • 列出可供安装的软件包。

在本指南中,我们将探索四种简单的方法来禁用或锁定某些包更新,使用百胜地下城与勇士命令。

1. 使用排除选项永久禁用软件包更新

阻止特定软件包更新的最简单方法之一是使用exclude选项中的百胜或者地下城与勇士配置文件,它告诉包管理器避免更新某些包。

打开百胜或者地下城与勇士配置文件。

sudo nano /etc/yum.conf        #Yum Configuration File
sudo nano /etc/dnf/dnf.conf    #DNF Configuration File

添加exclude文件底部的行,后跟要阻止的包名称。

exclude=kernel* httpd

这会阻止系统更新所有与内核相关的软件包和 Apache Web 服务器(httpd)。

DNF 中排除包更新

现在让我们尝试安装或更新指定的包并查看百胜或者地下城与勇士命令将禁用它的安装或更新。

sudo dnf install httpd
防止在 Linux 中安装软件包

2. 使用排除选项暂时禁用软件包更新

如果您不想永久修改配置文件,可以使用以下命令暂时排除特定包--exclude运行时命令行中的选项百胜或者地下城与勇士更新。

sudo yum update --exclude=nginx php
sudo dnf update --exclude=nginx php

3. 排除存储库中的特定包

对于通过添加存储库从任何外部源安装的任何软件包,还有另一种方法可以在将来停止其升级。这可以通过编辑它来完成repo-name.repo创建的配置文件/etc/yum/repos.d/或者/etc/yum.repos.d目录。

打开存储库配置文件。

sudo nano /etc/yum.repos.d/repo-name.repo

添加exclude线下的[repository]部分:

exclude=package1 package2

例如,如果您想排除mysql包从 epel 存储库更新,打开/etc/yum.repos.d/epel.repo并添加:

exclude=mysql*

这将阻止更新mysql来自这个特定的存储库。

两个都百胜地下城与勇士提供可以锁定特定版本的软件包的插件,防止它们被更新,这是使用版本锁插件。

为了百胜:

  • 安装版本锁包:sudo yum install yum-plugin-versionlock
  • 锁定特定包版本:sudo yum versionlock add httpd
  • 查看所有锁定的包:sudo yum versionlock list
  • 要从版本锁定中删除包:sudo yum versionlock delete httpd

为了地下城:

  • 安装版本锁包:sudo dnf install dnf-plugins-core
  • 锁定特定包版本:sudo dnf versionlock add httpd
  • 查看所有锁定的包:sudo dnf versionlock list
  • 要从版本锁定中删除包:sudo dnf versionlock delete httpd
结论

通过使用这四种方法——修改百胜或者地下城与勇士配置文件,使用--exclude命令中的选项、利用版本锁插件或配置存储库排除 – 您可以轻松地在基于 RPM 的 Linux 系统中禁用或锁定软件包更新。