I just finished a rebuild of my laptop as I finally became frustrated with CentOS’s various incompatibilities that prevented it from loading binary Nvidia drivers, as well an increasing number of custom-built software packages (whole environments, really) on the system.
Although it took time to learn how to get the internal screen routed to the Nvidia GPU, it was well-worth the switch to Gentoo.
The Power of Source
What Gentoo recognizes is that open source software has an advantage in the source code itself. Largely, it is configurable. Relying on a binary build leaves you to the build-time decisions of the person building it.
An example: to build VLC with RTSP support, you need to build a handful of packages differently from the build-in binaries, as well as all of their dependencies wherever those dependencies require a feature not available in the current binary. All it takes is struggling to build one of those packages to consume an extra hour or two to get the job done. In fact, I never succeeded in the task.
Once I had gentoo installed, it was an absolute breeze to accomplish this task: euse -E live && emerge vlc. It didn’t even take a long time, thanks to a globally-set -j8 flag to make actually being able to tap out my processor.
Now, I can’t distribute the software that I build for this system, because it’s built with all of the assumptions of my system in mind, including -march=haswell. But damn does everything just work the way I expect it to. I woke to a fresh kernel available, and had it built and booted to X in 10 minutes.
I can make major changes to system expectations and rebuild the entire system to support new features with a single command, reliably.
Now that I want to try pulseaudio, I can just euse -E pulseaudio && emerge [some options] @world.