如何删除所有 DNF 软件包(其他软件包均不依赖该软件包)

如何删除所有 DNF 软件包(其他软件包均不依赖该软件包)

我的问题

我想手动构建一个软件。所以我使用 安装了它的所有依赖项dnf install <a> <b> <c>

然后我不再需要这个软件了,所以我也想卸载它的所有依赖项。但yum remove <a> <b> <c>会删除所有软件包,即使另一个已安装的软件包仍然依赖于其中一个软件包(<b>例如)。

我尝试过的方法

  • 我阅读了man dnf,但找不到合适的命令。

我的问题

最简单的方法是什么:

  1. 找出软件包<a><b>和中哪些<c>仍被其他软件包需要。
  2. dnf remove从我的不再需要的软件包列表中删除所有软件包(<a><b><c>),但不要从点 删除软件包(1.)

任何想法?

感谢您的帮助。如果还有不清楚的地方,请评论,我会添加更多详细信息。

答案1

对于 Fedora,您可以使用包清理,例如使用--leaves选项。

--leaves 列出本地 RPM 数据库中的叶节点。叶节点是其他 RPM 不依赖的 RPM。

答案2

使用 Yum,您可以使用package-cleanup中的命令yum-utils。但是,使用 DNF,它是内置的命令dnf autoremove。来自文档

dnf [options] autoremove

从系统中删除所有“叶”包,这些包最初是作为用户安装包的依赖项安装的,但不再被此类包需要。

dnf list请注意,在运行 automremove 本身之前,您还可以使用命令查看要删除哪些包,使用

dnf list autoremove

还请注意,DNF 在行为上还有另一个不同之处,这应该可以帮助您解决类似情况(但不是您的确切情况)。如果您的主要软件是由 DNF 安装的(而不是在 DNF 之外手动安装的),并且您使用了dnf remove,则默认(与 yum 不同)还会删除仅为该软件包添加且不用于其他任何用途的任何依赖项。

相关内容