yum更新中如何排除特定软件包?教你三种方法!

360影视 2025-01-25 14:12 2

摘要:在基于 Red Hat 系统的运维与管理过程中,常常会遇到需要排除特定软件包更新的场景。比如,某些关键业务应用依赖于特定版本的软件包,若随意更新可能会导致兼容性问题,影响系统的稳定运行。YUM 作为 Red Hat 系统强大的包管理工具,提供了多种方式来实现这

在基于 Red Hat 系统的运维与管理过程中,常常会遇到需要排除特定软件包更新的场景。比如,某些关键业务应用依赖于特定版本的软件包,若随意更新可能会导致兼容性问题,影响系统的稳定运行。YUM 作为 Red Hat 系统强大的包管理工具,提供了多种方式来实现这一需求。以下将详细介绍从 yum 更新中排除特定软件包的三种实用方法,帮助管理员更灵活地掌控系统更新策略。

这种方法适用于仅需在单次更新操作中排除特定软件包的情况,具有简单直接的特点。在 YUM 命令中,可以使用 --exclude 或 -x 选项来指定要排除的软件包[^1^][^2^]。

排除单个包:如果只想在一次更新中排除一个特定的软件包,例如内核包 kernel,可以使用以下命令:yum update --exclude=kernel

或者使用更简洁的 -x 选项:

yum update -x 'kernel'排除多个包:当需要同时排除多个软件包时,比如除了内核包 kernel,还想排除 PHP 包,可以在命令中使用多个 --exclude 选项,并分别指定软件包名称:yum update --exclude=kernel* --exclude=php*

也可以将所有要排除的软件包名称用逗号分隔写在一个 --exclude 选项中:

yum update --exclude httpd,php

这种方法的优点是操作简单,无需对系统配置文件进行修改,适用于一次性的临时需求。但它的缺点也很明显,每次执行更新命令时都需要手动添加排除选项,容易遗忘或出错,且无法长期有效地控制特定软件包的更新。

若经常需要进行修补程序更新,且希望每次都自动排除某些特定软件包,那么修改 YUM 命令的配置文件是一种更为持久有效的方法[^1^][^2^]。

通过编辑 /etc/yum.conf 文件,在 [main] 部分添加 exclude 配置项,并在其后面列出要永久排除的软件包名称。例如,要将内核包和 PHP 包永久排除在更新之外,可以按照以下步骤操作:

打开 /etc/yum.conf 文件:vi /etc/yum.conf找到 [main] 部分,在合适的位置添加如下配置行:[main]cachedir=/var/cache/yum/$basearch/$releaseverkeepcache=0debuglevel=2logfile=/var/log/yum.logexactarch=1obsoletes=1gpgcheck=1plugins=1installonly_limit=3exclude=kernel* php*保存并关闭文件。

这样设置后,每次运行 yum update 命令时,系统会自动排除在 exclude 列表中的软件包,无需再手动指定。这种方式避免了重复操作,提高了系统管理效率,但也需要谨慎使用,因为可能会错过一些重要软件包的安全更新。如果确定某些软件包不需要更新,且不会对系统安全和稳定性造成影响,才建议采用此方法。

YUM versionlock 插件提供了另一种永久性排除软件包的方法,它允许用户通过 YUM 命令锁定指定包的版本,从而防止其被更新[^1^][^2^]。

要使用该插件排除软件包,可以按照以下步骤操作:

运行 yum versionlock 命令并使用 add 子命令指定要锁定的软件包。例如,要将 freetype 包锁定,阻止其更新,可以执行:yum versionlock add freetype

执行上述命令后,系统会输出类似如下的信息,表示版本锁定已添加成功:

Loaded plugins: changelog, package_upload, product-id, search-disabled-repos, subscription-manager, verify, versionlockAdding versionlock on: 0:freetype-2.8-12.el7versionlock added: 1若要检查已被 versionlock 插件锁定的软件包列表,可以使用 yum versionlock list 命令:yum versionlock list

系统将显示所有被锁定的软件包及其版本信息,如下所示:

Loaded plugins: changelog, package_upload, product-id, search-disabled-repos, subscription-manager, verify, versionlock0:freetype-2.8-12.el7.*versionlock list done如果不再需要锁定某个软件包,即允许其正常更新,可以使用 yum versionlock clear 命令清空锁定列表:yum versionlock clear

YUM versionlock 插件的优点是操作方便灵活,既可以在命令行中动态添加或清除锁定,也可以通过编辑 /etc/yum/pluginconf.d/versionlock.list 文件进行静态配置。这使得管理员可以根据实际需求灵活选择管理方式,更好地适应不同的系统环境和维护场景。

从 YUM 更新中排除特定软件包是系统管理中常见的需求,以上介绍的三种方法各有优缺点,适用于不同的场景。管理员应根据实际需求选择合适的方法,以确保系统的稳定性和安全性,同时避免不必要的软件包更新带来的潜在风险。

来源:wljslmz

相关推荐