我刚刚从 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
设置后,下一个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
只需确认删除选定的包即可。