网站搜索

如何使用 Yum 删除具有依赖关系的包


通常,使用 YUM 包管理系统删除包会删除该包及其依赖项。但是,系统上的某些依赖项不会被删除,这些依赖项我们可以称为“未使用的依赖项”或(根据 YUM man 所谓的“叶包”)页)。

另请阅读:使用 Yum 锁定软件包安装或更新的 4 种方法

在本文中,我们将解释在 CentOS 和 RHEL 发行版中使用 YUM 包管理器删除或卸载包及其依赖项的两种方法。

1. 使用 YUM 的自动删除选项

此方法要求您在 YUM 的主配置文件 /etc/yum.conf 中添加指令 clean_requirements_on_remove。您可以使用您最喜欢的命令行编辑器打开它进行编辑,如图所示。

vim /etc/yum.conf

然后将以下行添加到 /etc/yum.conf 文件中,如下面的输出所示。值 1 表示该指令已启用(或打开),零表示否则。

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

clean_requirements_on_remove=1

保存更改并退出文件。

从现在开始,每次删除软件包时,YUM 都会检查每个软件包的依赖关系,如果任何其他软件包不再需要它们,则将其删除。

yum autoremove

2:使用 yum-plugin-remove-with-leaves 插件

此扩展会删除安装包添加的任何未使用的依赖项,但不会自动删除。它还可以帮助您清除系统中未使用的库和包。

首先使用以下 yum 命令在您的系统上安装此扩展。

yum install yum-plugin-remove-with-leaves

安装扩展后,每次要删除软件包时,请添加 --remove-leaves 标志。

yum remove policycoreutils-gui --remove-leaves

有关更多信息,请查看 YUM 的手册页:

man yum

就这样!在这篇简短的文章中,我们展示了两种使用 YUM 删除包以及未使用的依赖项的有用方法。如果您有任何疑问,请使用下面的评论表与我们联系。