Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

On Gentoo, is there a way to find a list of installed packages which doesn't have other packages depended on them (so called leaf packages)? Or, is there analog of pkg-orphan FreeBSD utility?

share|improve this question

2 Answers 2

That's what emerge --pretend --depclean does. It looks for packages that are:

  • not depended upon by other ebuilds, and
  • neither in world nor system sets

It's a good idea to run emaint --check world to find (and later fix) potential problems with your world file before a depclean.

Other useful tools: Gentoo maintenance

share|improve this answer
In my case, packages which I'm interested in (these perl modules from my other question) are all in world file. –  AlexD Oct 2 '11 at 11:24
When you put stuff in world, it means "I depend on this". I.e. you are the dependency. Remove the packages that you don't explicitly need from your world file. When you emerge things you don't explicitly need, use the --oneshot option. –  Mat Oct 2 '11 at 11:28
Adding to the previous comment by Mat: A proper command-line way to remove such packages from world is emerge --deselect package_atom, where package_atom can be simply the name of package (for more, see man portage). –  rozcietrzewiacz Oct 2 '11 at 13:13
These packages are installed by puppet recipe so using --oneshot will require modifying puppet sources, and I need these packages included in world file in production anyway so they won't be removed by regular depclean (these packages are dependencies of large web application which is not properly packaged yet). But right now I need to clean these packages from test system and removing these packages by hand from world file (or from system) is exactly task which I'm trying to avoid. –  AlexD Oct 7 '11 at 7:19
You can't have it both ways - tell the system they are required, then ask it for them to be cleaned up automatically. You need to track what you're doing. Sets will help a bit, but as you said in another comment it's not bullet-proof. You could also simply record all your emerge actions (with a simple wrapper) and use that to backtrack your changes. –  Mat Oct 7 '11 at 7:22

If you want to see what packages in the @world set are not also dependencies of other installed packages, you can run emerge --pretend --depclean @world (or emerge -pc @world). Also note that if you try to remove a package using emerge --depclean atom (instead of emerge --unmerge atom), portage will only remove the package if nothing else depends on it.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.