在CentOS 7中删除软件包时如何删除所有已安装的依赖包?

在CentOS 7中删除软件包时如何删除所有已安装的依赖包?

我使用的是 CentOS 7。我安装了 okular,它是一个 PDF 查看器,命令如下:

sudo yum install okular

如下图所示,它安装了37个依赖包来安装okular。

安装的依赖项

但我对该应用程序的功能并不满意,因此决定将其删除。问题是,如果我使用以下命令删除它:

sudo yum autoremove okular

它只删除四个依赖包。

使用 autoremove 删除了软件包

如果我使用以下命令删除它:

sudo yum remove okular

它只删除一个包 okular.x86_64。

现在,我的问题是有没有办法用命令删除所有 37 个已安装的软件包,还是我必须一一删除它们?

答案1

就我个人而言,我不喜欢 yum 插件,因为根据我的经验,它们很多时候都不起作用。

您可以使用该yum history命令查看您的 yum 历史记录。

[root@testbox ~]# yum history
Loaded plugins: product-id, rhnplugin, search-disabled-repos, subscription-manager, verify, versionlock
ID     | Login user               | Date and time    | Action(s)      | Altered
----------------------------------------------------------------------------------
19 | Jason <jason>  | 2016-06-28 09:16 | Install        |   10

您可以通过执行以下操作找到有关交易的信息yum history info <transaction id>。所以:

yum history info 19会告诉您使用事务 19 安装的所有软件包以及用于安装这些软件包的命令行。如果您想撤消事务 19,您可以运行yum history undo 19.

或者,如果您只是想撤消您所做的最后一笔交易(您安装了一个软件包并且不喜欢它),您可以这样做yum history undo last

答案2

yum remove package_name将仅删除该包及其所有依赖项。

yum autoremove将删除未使用的依赖项

要删除具有依赖项的包,您需要安装yum名为:remove-with-leaves

要安装它,请输入:

yum install yum-plugin-remove-with-leaves

要删除package_name类型:

yum remove package_name --remove-leaves

相关内容