Tuesday, December 18, 2007

CentOS, -1

I've been struggling to setup a web / db env in CentOS.

It sucks. Badly. Why rename apache to httpd? Why let PostgreSQL config files live in the data directory instead of /etc? Is there _any_ compelling reason to use this pile of junk instead of Debian or Ubuntu?


I guess I've been spoiled by the (comparatively) pure joy of configuring, maintaining and running my code on Debian based distributions.


Anonymous said...

Well, the name is "Apache HTTPD" just like it's "Apache Spamassassin" and a dozen others.

It hasn't been just "Apache" for at least 6 years.

Anonymous said...

Exactly, go download Apache web server and see what filename it comes in.

CentOS is based on (well, is essentially an exact replica) of Red Hat Enterprise Linux, with all associated development, testing, QA, long-term support, etc.

Just because you are not used to where things are or how they are called doesn't mean they suck.

Simon Wittber said...

Sure, I'm ranting about small things, however...

...compare Apache configuration in CentOS with Ubuntu. Which one sucks less?

Ubuntu splits module and site configuration files into manageable pieces. CentOS just dumps it all into a big fat file.

It's a small point, but it indicates to me that the Ubuntu/Debian developer cares more about sys-admin sanity and the even bigger issue of configuration management.

Just because something has 'Enterprise' in its name doesn't mean it's a great product, or even suited to the so called 'enterprise' environment.

Anonymous said...

I don't think it's reasonable to compare the usability of CentOS vs Ubuntu. CentOS appears to be following the conventions of the pacakges. The Apache binary has been 'httpd' for as long as I can remember. httpd.conf was the primary, monolothic config file for a long time. Sometime recently (i.e. in the last few years) the use of conf.d/*.conf modular config files became the norm. I suspect Ubuntu seems "easier" because it's running a more recent version. Nothing to do with which devs "care more".

RHEL is "enterprise ready" because it been heavily tested and RH provides full support. I doubt RH would agree that CentOS is similarly enterprise ready since no-one supports this distribution. Ubuntu even less so.

Anonymous said...

The RHEL 5 and Feisty http versions are almost identical (both 2.2.x). In general the underlying cause for this kind of thing is someone deciding on a configuration scheme many years ago. With each new distro release they could have updated the configuration scheme, but doing so would break upgrades. So only changes that don't break upgrades happen.

I had the same reaction as Simon because I had to port some software from Feisty to RHEL and hadn't used Redhat since the 9 days. It feels like the Debian/Ubuntu config stuff has had thought put into it, whereas RHEL just felt like random crap.

And then of course I wanted to get extra tools to make me feel comfortable - ccache, xemacs etc. I quickly learned to avoid that as much as possible. (Yes, you can extra add extra repositories but it requires far too much work.)

Anonymous said...

Isn't it marvellous to have so much choice that we can call something totally free and actually amazing a 'pile of junk' just because our preferences lie elsewhere. Perhaps you, Simon, would prefer to pay for an OS that does everything to your liking? Perversely you may not have that option. ;)

Simon Wittber said...

Haha. Point taken.

My rant should not be taken as a critique of the software sitting beneath CentOS. It was a rant, after all, a gut reaction to a sub-optimal solution.

Personally, I've never let backwards compatibility hold me back from making drastic changes to my own software. Growth can be a painful and destructive process. Everything is eventually obsolete, and I believe that change _now_ is almost always better than change later.

Anonymous said...


The problem you seem to have is not with CentOS - but with yourself. Most of what you have said here about CentOS is incorrect and comes from the fact that you havent actually made any effort to look at the issues.

It was amusing almost to read that you consider CentOS httpd to use only 1 config file, the redhat platform split to using an /etc/httpd/conf.d/ about 8 years back and is whats the recommended format for config files is. Not only httpd but a lot of other server / configurable apps use a similar .d format. The fact that you missed it - is odd. Perhaps you should consider loging into the CentOS install and actually looking at whats in /etc/httpd/ ?

I think in this case, its not really a case of CentOS -1, its more like Simon -1 :D

Anonymous said...

CentOS is the worst distro I've laid hands on in a good ten years, and I'm NOT just saying that. It's awful. That said, I wouldn't use Ubuntu in a server environment either -- I'd use Debian all the way, because it goes through a much more rigorous testing cycle, the packages change much less frequently, and security updates are very fast.

CentOS is good for the sad sacks that managed to get chained to Red Hat for one reason or another but don't want to pay for it, and nothing more. Enjoy your config files scattered across all creation, your horrifying package management system ("yum?" more like "strychnine" amirite?) and relying on random dudes with FTP servers full of packages when you need a piece of software not included in the main distro.

Yeah, I -so- want to go back to 1998. Not.

Anonymous said...

Perfectly appropriate rant.

CentOS/RH Apache configuration is complete garbage. Several other major distros have great apache config layouts. In fact, it is laid out so well on many that you can very easily extend it for individual site needs when running multiple domains/sub-domains.

It's also complete BS to have to resort to third party repos for major server software that is common in most "enterprise" setups.

Only my experience with these well thought out server configurations can I manage to fix CentOS crap enough to manage my sanity.

Anonymous said...

I love the way these guys are trying to defend centos by saying that you can split the config files up in the conf.d directory. That's not what he's saying. To enable a module in centos, you scroll through your httpd conf file and look for the modules section (although they're all already enabled, jesus christ). you then unhash or write in your config line. With debian you type a2enmod and then the module. No mess no fuss. Module linked to the mods-enabled directory. you can do the same for sites to enable and disable them. centos and redhat cause me great pain and it's not because i've never used them in the past, it's because i've found a better way.


Popular Posts