Linux – How to remove all packages with DNF on which no other package depends on

dependenciesfedoralinuxpackage-managementyum

My Problem

I wanted to build a piece of software by hand. So I installed all of its dependencies using dnf install <a> <b> <c>.

Then I didn't need that piece of software any more, and so I also wanted to uninstall all of its dependencies. But yum remove <a> <b> <c> would remove all packages, even if another installed package still depends on one of these packages (<b>, for example).

What I've Tried

  • I read the man dnf, but I couldn't find a suitable command.

My Question

What is the simplest way to:

  1. Find out which of the packages <a>, <b> and <c> are still needed by other packages.
  2. dnf remove all packages from my list of packages that I don't need anymore (<a>, <b> and <c>), but don't remove the packages from point (1.).

Any idea?

Thanks for your help. If anything's unclear, please comment and I'll add more details.

Best Answer

For Fedora you can use package-cleanup, for example with the --leaves option.

--leaves List leaf nodes in the local RPM database. Leaf nodes are RPMs that are not relied upon by any other RPM.

Related Question