软件包管理器属于一种软件,可以允许用户安装新软件、升级系统、更新特定软件等。在Linux中有不少软件有依赖项,这些依赖项必须存在系统中才能完成,因此软件包管理器等工具在每个系统上都需要。
Linux发行版都附带了用于上述功能的默认包管理器,DNF(Dandified YUM)正在取代Fedora 系统上的YUM,包管理器可以实现从存储库中安装新软件,通过在安装软件前安装依赖项来解决软件依赖关系,维护每个软件依赖关系数据库,降级任何现有软件版本,升级内核版本,列出可供安装的软件包。
如果要组织特定软件包的更新,可以使用Yum或DNF的配置文件,先打开:
sudo nano /etc/yum.conf #Yum Configuration File
sudo nano /etc/dnf/dnf.conf #DNF Configuration File
在文件的底部添加以下内容,后跟上想阻止的包名称:
exclude=kernel* httpd
这会阻止系统更新所有与内核相关的软件包和 Apache 网络服务器 ( httpd )。
然后验证是否已经阻止该指定包的更新:
sudo dnf install httpd
如果不行一直修改配置文件,还可以在Yum或DNF更新时用命令行选项暂时排除特定软件包:
sudo yum update --exclude=nginx php
sudo dnf update --exclude=nginx php
通过添加存储库从任何外部源安装的任何软件包,还可以编辑在/etc/yum/repos.d/或/etc/yum.repos.d目录中创建的repo-name.repo配置文件来阻止升级。
打开配置文件:
sudo nano /etc/yum.repos.d/repo-name.repo
在该部分下添加以下行[repository]:
exclude=package1 package2,如想mysql从 epel 存储库中排除该包的更新,请打开/etc/yum.repos.d/epel.repo并添加:
exclude=mysql*
这样就可以阻止来自该特定存储库的mysql更新。
Yum和DNF都提供可以锁定软件包特定版本的插件,防止它们被更新,这是使用versionlock插件完成的。Yum安装versionlock插件:
sudo yum install yum-plugin-versionlock
锁定特定的软件包版本:
sudo yum versionlock add httpd
查看所有锁定的包:
sudo yum versionlock list
从版本锁中删除软件包:
sudo yum versionlock delete httpd
对于Dnf安装 versionlock 包:
sudo dnf install dnf-plugins-core
锁定特定的软件包版本:
sudo dnf versionlock add httpd
查看所有锁定的包:
sudo dnf versionlock list
要从版本锁中删除软件包:
sudo dnf versionlock delete httpd