- 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
Since the dawn of time, most Linux distributions have opted to follow a release pattern similar to most commercial software packages: release a new, updated version of the product every few months or years. This pattern is comfortable for many developers, as it gives them a chance to work on new features without worrying about the initial damage it will cause, followed by a bug fixing phase when the product is polished for release.
Meanwhile, you’ll find that Gentoo has no real concept of a release. They do release a new version of the official live CD every so often, but the only change is an update of the tools used on the CD. Regardless of the age of the live CD, the end result will be the same: a fully functional Gentoo system.
Instead, for each architecture, Gentoo has two release targets: stable and testing (arch and ~arch, respectively). New versions of packages are generally put into testing first. After at least thirty days (in most cases) with no problems, they are marked as stable. What does this whole process mean for the end user? There are some noted advantages:
- You get access to new versions of your software shortly after they come out. When a new version of a program such as Firefox or Pidgin is released, you’ll often be able to install the new version within a day or so.
- Since software is always being upgraded, the upgrades happen in small bits. This allows major changes to be handled one at a time, rather than wrestling your way through a bundle of changes every six months.
However, there are also some disadvantages:
- Because the current versions of various packages are always changing, there is little opportunity for the system as a whole to be tested. This results in occasional instability, especially if you try to mix packages from the stable and testing targets. This kind of problem seems to more rare than it has in the past, but that could be entirely in my head.
- Because there is no release deadline, and developers make no official attempt to synchronize with upstream release cycles, major software packages can be slower to be updated. In particular, Gentoo seems to be perpetually about three months behind on updating GNOME.
There are other distributions which also offer a rolling release. Arch is often more updated than Gentoo. Exherbo is extremely bleeding-edge, though as it has matured, it’s become less so. Fedora offers its Rawhide branch, with which I unfortunately have too little experience to comment on extensively. With Debian, you have access to Sid. Of all of these, Gentoo does the best job of keeping the rolling release stable for everyday use.
Gentoo gives me the best combination of up-to-date packages with overall stability, and this is perhaps the most influential reason as to why I use Gentoo. I keep hoping another major distribution will move to a rolling release, but that’s probably mostly wishful thinking. Some are better than others about keeping non-core packages up to date in the current release, but in the end, I still feel like Gentoo gives me the best overall experience.
Hi,
I like your series, especially because you write from a desktop users perspective. In this post I miss what I perceive as the main strength, though: The ability to choose some packages from testing and all the rest from stable.
Anyway: Thank you for publishing your thoughts!
That’s definitely an advantage to the keyword system Gentoo uses, though I tend to always run testing, so it doesn’t matter much to me personally. I do make use of it one of my servers where I run Gentoo. I think you can probably do something similar on Debian-based systems with pinning, but because it uses binaries, the dependencies can be harder to resolve that way.
Mixing packages can lead to some weird bugs because the various combinations haven’t been tested as well, but generally, it seems to work well.