如何删除 Fedora 中的孤立包?

如何删除 Fedora 中的孤立包?

我刚刚从 Ubuntu 切换到 Fedora14。在 Ubuntu 中,我们可以apt-get autoremove删除孤立/未使用的软件包。 Fedora 中的对应项是什么?

答案1

DNF 是 Fedora 22 以来的 yum 替代品,它还提供了一个autoremove子命令:仿照apt-get/yum 自动删除。

例子:

# dnf autoremove

它尝试删除所有自动安装和其他未使用的依赖包 - 应该几乎等同于apt-get autoremove.

# dnf autoremove examplepackage

这会删除 examplepackage 及其所有自动安装(以及其他未使用的)依赖项。

百胜

Yum 从 Fedora 19 开始就有了 autoremove 命令,并且从 Fedora 20/RHEL 7 开始就有记录。

用法与 dnf 实现类似,例如:

# yum autoremove

或者

# yum autoremove examplepackage

更改 yum 删除的行为

Yum 支持一个配置选项来更改子命令的默认行为remove(例如通过 /etc/yum.conf):

clean_requirements_on_remove=yes

百胜.conf(5)

设置后,下一个yum remove还会尝试删除自动安装的依赖项,前提是其他包不需要它们。

您还可以通过以下方式临时测试此选项:

# yum --setopt=clean_requirements_on_remove=1 remove examplepackage

旧 Fedora 版本的解决方法

(对于 yum autoremove 子命令不可用和/或clean_requirements_on_remove不起作用的 Fedora 版本。)

尽管在安装软件包期间安装的依赖项被标记为这样(似乎是 rpm/yum 的相对较新的功能)。

您可以通过以下方式找到不需要的依赖项:

$ package-cleanup --leaves -q --all \
    | xargs repoquery --installed --qf '%{nvra} - %{yumdb_info.reason}' \
    | grep -- '- dep' \
    | cut -d' ' -f1 > tmp

该命令行的灵感来自fenris02 的脚本

经过检查tmp(也许还有管理)后,您可以通过以下方式删除它们:

# xargs yum remove < tmp

答案2

package-cleanup --quiet --leaves来自yum 工具package 将列出其他包不依赖的库包。不幸的是,它往往有点过于急切。例如,在我的系统上,它建议删除 libvirt。添加--exclude-bin参数会有所帮助。如果您对它的建议感到满意,那么要清理软件包,请执行以下操作:

# package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y

答案3

你需要安装 yum 插件“remove-with-leaves”:

# yum install yum-plugin-remove-with-leaves.noarch

安装后:

# yum remove --remove-leaves package

祝你好运!

答案4

笔记:这个答案是正确的,但仅适用于 RHEL 7+ 和 Fedora 20+(其中自动删除已作为新功能添加)。

# yum autoremove

只需确认删除选定的包即可。

相关内容