- Why I Use Gentoo Linux
- (Not) Why I Use Gentoo: Optimization
- (Not) Why I Use Gentoo: USE Flags
- (Not) Why I Use Gentoo: Learning about Linux
- Why I Use Gentoo: Rolling Releases
- Why I Use Gentoo: Simple Package Management
- Why I Use Gentoo: Unused Dependency Removal
- Why I Use Gentoo: Configuration File Management
- Why I Use Gentoo: Development Environment
- Why I Use Gentoo: Conclusion
Perhaps with the exception of Slackware, today’s modern distributions have completely mastered the fine art of installing a package’s dependencies automatically. The installation of a package and all its required dependencies is no more difficult than a single command.
However, there does occasionally come a time when I decide to uninstall a software package I previously had installed. If only the package itself is removed, all of its now unused dependencies will be left behind. Over time, this unused cruft accumulates, wasting disk space and causing superfluous upgrades of these unused packages.
Gentoo’s key innovation in this area (and one of the many reasons I use it) is something called the world set. The world set is nothing more than the set of packages that were explicitly installed by the user. If a package is neither in the world set nor a direct or indirect dependency of another package that is, it can (in theory) be safely uninstalled. Thus, the system is kept free of unused dependencies.
In addition, all distributions come with a default set of packages have a core set of system packages that probably shouldn’t be removed. Gentoo calls this the system set, and this set is assumed to be part of the world set. As a result, system packages and their dependencies are never automatically removed.
This feature isn’t entirely exclusive to Gentoo. Aptitude, the popular front-end for apt, Debian’s package management system, has long had the ability to mark packages as either manually or automatically installed, removing unused dependencies as necessary. In addition, in the past few years, apt gained the ability to natively track this information, making apt as capable as Gentoo’s portage in this regard.
However, at least to my mind, Debian’s packaging makes the use of this feature somewhat more difficult. Instead of a single metapackage to install a default GNOME desktop environment, the user must mark as manually installed several packages in the GNOME desktop environment task. Ubuntu elegantly solves this problem through its ubuntu-minimal, ubuntu-standard and ubuntu-desktop packages, which allow you to simply mark the default system as manually installed. (Of course, if you want to remove a single package from the default system, you’re out of luck. I’ve never had that problem, however.)
In the end, Ubuntu seems the most comparable to Gentoo among the major distributions. I’m not even sure Fedora has a good equivalent, but I’d love to hear about it if it does. In any case, while this particular feature isn’t as much of a reason to use Gentoo as it was five years ago, it’s still one of the reasons I use Gentoo. On the other hand, a rolling release Ubuntu would be that much closer to getting the ultimate nod.