Over at Bryan Lunduke’s blog is a presentation on why Linux sucks. No no, no operating system or distribution bashing, he isn’t from Microsoft, and he isn’t arrogant, snarky, or rude throughout. He is able to bring up a topic that causes a lot of fervor – Linux distributions have issues. It sucks.
His thoughts revolve around the desktop and lack of software for the mainstream user, problems with this driver not working with that kernel, and other things that are brushed over when persons talk about the ease of a Linux based system.
My view is much more from the server side of things, that’s where I live day to day, but some of the issues brought up during the presentation reinforce my idea that Linux doesn’t belong in my server network.
But a subscript issue is talked about without ever being brought to the forefront – lack of cohesive anything between different distributions. He touches on some of it dealing with package management – Debian packages vs RPM vs package-manager-of-the-week, but misses the rest of the picture with the complete lack of standardization across the distributions (there is mention of discussions about creating this – isn’t that so 10 years ago? 15? Still broken…).
And this is where my post comes into play – who cares about the package manager when this apache configuration is in /etc/httpd and that one is in /etc/apache, while that third one is in /etc/apache2 – more than likely they all actually Apache 2.x. It isn’t the package managers fault that this shitting across the filesystem occurs, it is the distributions own standard (lack thereof) that causes this.
Though maybe not clear, I am a FreeBSD user, and prior to that, I was a Solaris user, before that – SunOS, and prior to that…ready for it? Linux, prior to any package manager.
And what do the first 3 have that isn’t in Linux of the past or today? Separation of base distribution (though I’d call the others full operating systems, not distributions) from added packages or applications. (my definition: an OS is a kernel + all base utilities managed as one entity, be it Mac OS X, Windows, FreeBSD, Solaris, etc. Once you separate the kernel from the rest, it is just a distribution with said kernel at the center, it is no longer an operating system. Debian recently achieved some kernel independence recently with Lenny – you can choose to have a FreeBSD kernel at the center. Wikipedia: Operating System – does not match my definition but offers a nice view of where we were and where we maybe heading.)
Every Linux distribution treats an optional package as part of the base, and installs right over the top of a pre-existing package (if the package manager sucks), or assumes it is the only thing allowed, deinstalling the other package, or worse, giving a cryptic error messsage.
What happened to /usr/local for optional packages? Solaris uses /opt for such, which is actually more descriptive, but /usr/local does the same thing.
Why does apache need to be installed in the main base area? Why do the config files need to be in /etc, why not in /opt/etc or /usr/local/etc?
What if the base apache install that came with the distribution of the week was already installed with its config files in /etc, but you wanted a different one – why can’t it be installed in /usr/local or /opt? Why must it be installed over the top?
One argument: all of the config files are in one place you need to back up – in /etc. I counter that with: what’s so hard about adding /usr/local/etc or /opt/etc to your backup? In fact, I would say it would make things much easier for you in the long run – build your new system, install your applications, then copy over your configuration files. Base has been upgraded, and my who-flung-poo additions won’t break the base.
Summary: Create an operating system (via my definition) based on the Linux kernel. Install your optional items outside of the base so that things can be managed separately – my OS requires x and y, while my added packages require z. If you want to go back to your base, you could just rm -fr /opt/* or /usr/local/*. I’d be down with checking out such.
Deep down, I don’t care what you run, run what you wish – it is your time you are using. But make your choices based on what you need to accomplish, be it $ayjob related, playing games, web browsing, whatever. Your morals are great, support OSS, you have kudos from me. Now step back, I had time to write this article even if only 10 people read it – you had a broken system because you did the daily update for your distribution of choice, and your sound no longer works.
Thanks again to Mr. Lunduke for that reinforcement of what is wrong and what needs to be fixed, it allows anti-Linux advocates like myself something else to point at…though maybe I should be more constructive and less holier-than-thou…and Bryan helps me see a higher moral ground to bring up real issues, without being a dick about it. Sorry, Bob!