Enterprise Linux by any other name

I’ve been doing a fair bit or reading and writing and talking about different versions of “Enterprise Linux”, and the more I talk and think about it, the more I come to realize that I’m not as comfortable with the definition of that phrase as I would like.

The current working definition of “Enterprise Linux” is a Linux distribution based off of the Source RPMs and build methods of RedHat Enterprise Linux. Essentially a group of people get together, put together a build infrastructure, and make a distribution using RedHat’s released sources. However, there are interpretations and changes made that make each of these distributions unique in their own right. CentOS has its issues, of course, but tries to stay as faithful as it can to the RedHat product. Scientific Linux seems to be a livelier group right now, but they’re truly making their distribution their own.

For example, SL doesn’t install the RedHat/Fedora Auto Bug Reporting Tool by default. While this is perfectly fine, it does make me wonder how if SL wants to push any bugs their community finds upstream or if they want to patch them within their own community. I was instructed by of the moderators at the SL forum site to contact one of the primary SL contributors about this, and I will. I’ll of course report back what I hear. I look forward to it.

I don’t know much about PISA’s philosophy, really. If someone knows more about the project team and their goals, I’d love to know.

AscendOS is just now getting off the ground, and their vision of building out an Enterprise Linux distribution without all of the baggage of the older communities. Noble, sure, but they’re still doing one thing like all the rest that may be worth examining. They’re all based off of what RedHat decides to do in their distribution.

I get the conventional wisdom, that if you follow RedHat’s lead, it’s easier to be compatible with RedHat. But it also piegon holes a distribution in to making mistakes that RedHat makes.

Now if you know me or have ever worked with me or talked to me for more than 3 minutes or been to a Richmond LUG meeting,  you’ll know that I’m a huge RedHat fanboy. I love how Shadowman goes about his business, and think they’re an admirable example of how to be a really good open source company. The RedHat product that really moved them into the limelight was RHEL 5. After coming out in 2007, it became the Linux standard in the Enterprise. But it had some serious shortcomings that proved at least annoying, and sometimes painful, for admins running it on a daily basis. The decisions that pop into my head are

  • holding on to Python 2.4 for so long
  • not including syslog-ng
  • not moving up to openldap 2.4
These are some of the first changes that happen to most any RHEL/CentOS 5.x installation that I control. I know RedHat had a good reason to maintain the older versions of python and ldap, and not including syslog-ng. But is it the best for an enterprise?
Should their be a distribution out there that relies more on sound principles than a specific company to guide their product? A community that tried to make the best distro available to run in a corporate environment.
Should we change how we define “Enterprise Linux” from “a RHEL-derived Linux distribution” to “A downstream Linux distribution that is optimized and hardened to work best in a corporate environment”. I guess that’s a pretty open-ended question, but I think it’s worth thinking.

Clone Wars 2 – Revenge of the Install DVDs

Last week I found out some interesting information when I took an initial look at two of the most popular RHEL-based Linux distributions, CentOS and Scientific Linux (SL). The next obvious step is to install the two, side by side, and continue this comparison. To be clear, I’m not running benchmarks of any sort on the two operating systems. I have no doubt that they will perform consistently enough to make that exercise un-interesting. What I’m looking for is what makes these distributions different, and anything that would make me particularly like or dislike one of these distributions.

The Setup

I set up downloads from public mirrors of both using their install DVD images. I was initially going to take all default settings, but their default settings turned out to be significantly different. So I picked the “Desktop” option for both setups, and took all other defaults.

I chose the Desktop version because I assumed it would provide the most “stuff”. A minimal runlevel 3 install, while more practical for my everyday life, would also be a short and boring talk.

They were both installed into VMWare Fusion 3 VM’s on my work-provided Macbook Pro. Each has a 20GB hard disk file and 1GB of memory.

Downloading the DVD Images

Downloading the DVD ISOs was relatively painless for both distributions. CentOS was a little faster, but I’m sure that fluctuates from mirror to mirror and over time.

Scientific Linux Installation

I installed SL first, and took all of its default settings, including installing the Desktop profile. It then prompted me that I’d require both DVD1 and DVD2 for installation. Odd, I thought. This didn’t sound familiar from the last time I installed RHEL6. So I tried other profiles, including “minimal”. It wanted both DVDs for all of them. So off I went to download another 1GB of data. Certainly not horrible but it seemed a little odd.

Installation looked identical to RHEL6, with different images, of course. The SL logo is a stylized Bohr-style atomic model. The graphics are simple and clean.

After reboot I got a black desktop with the atom logo large and on the right. The only immediately noticeable difference from the default RHEL desktop is that they’ve added a launcher button for the Gnome terminal app to the top Panel bar. While not Earth-shattering, it’s always task #3 I do to a Linux box with a GUI, so it’s a timesaver. They’ve also enabled the weather options on the Panel clock for me. While I like the idea and applaud the effort, it did make me wonder “What else are they doing to tweak the UI?”, and sent me off on a minor snipe hunt.

CentOS Installation

The CentOS install was also simple and clean. Their default install profile is “minimal”, so I picked Desktop to be consistent. Other than that the only difference were the graphics, and I took all default settings.

Oddly, CentOS never warned about nor asked me for the DVD number 2. It was happy to install only from the larger DVD image.

Rebooting after install landed me at a dark blue desktop with some stylized circle/bubble things. I like dark desktops, so this is fine with me. Clean and professional looking, it’s a huge improvement from the CentOS teal era. They don’t appear to have installed any desktop modifications, just like in previous CentOS installs.

Compare and Contrast

So how are these two distributions different? Well, those differences are few and far between at the levels I was looking into, but a few of them do make them distinctly different products.

The method I used to generate a way to figure out how they differed was to run a diff on a sorted list of their installed packages. While a little simplistic, this seemed like the way to get the most info for my buck. I’ve attached the raw sdiff at the bottom of this post.

Desktop Tweaks

SL installed SL_desktop_tweaks-6-3.noarch.rpm, which installs /usr/share/config/panel-default-setup.SL.entries. This is where my terminal shortcut, weather, and any other UI bits are coming from.

Automatic Bug Reporting Tool (ABRT)

SL doesn’t install this Fedora project at all. While I’m not a huge fan of this app, if I were newer to Linux, or not as comfortable with it as I am, I would certainly use this to push bugs into the RH bugzilla, generate error reports, etc. I really think excluding this app weakens the entire community, and I’d love to hear SL’s take on why they’ve left it out.

YUM differences

CentOS uses the fastestmirror YUM plugin, like it has in the past, to try and get you the fastest mirrors for your updates, etc. It’s not a perfect tool, but I applaud the effort, mainly because it means I’m not adding/removing mirrors to my config all the time as they come and go.

SL doesn’t use fastestmirror. Rather it hard-codes a list of ftp servers into its YUM repo configs:

SL yum repository configThis seems a little antiquated and static. I’d like to know why they haven’t moved to something more dynamic.

Also, for reasons I couldn’t quite put together, SL doesn’t include libtar as a default installation. It’s out there in its repositories, just not included on my test install. Why not?

The biggest difference, however, is that SL installs and ENABLES BY DEFAULT yum-autoupdate. Without an exclude statement of some sort (which they didn’t add in), this little gem will automatically update your, well, everything. If I were using this distribution in a production environment and didn’t notice this little guy was flipped on, it would be an almost guaranteed headache. Again, I’d like to know the rationale behind the decision. It has been mentioned on the SL forums, but as of my last reading no “why” answer or opinion has been offered by the team.

Conclusions

Well, this time I actually have a few. After digging a little deeper into these two RHEL-derived products (I won’t call them clones any more because neither truly clones RHEL), I find that they are both of high-quality, and their teams have put effort and thought into their creation. However, for me, right now, the edge still goes to CentOS. This is primarily because of what they do include (the ABRT, to help keep information flowing upstream) and what they don’t (auto-updating my system). I’d love to speak to people from both communities, and keep this conversation going on.

Raw sdiff output

Jamie-Duncans-MacBook-Pro-4:~ jduncan$ sdiff sl-list-sorted.txt cent-list-sorted.txt -s
SL_desktop_tweaks-6-3.noarch                                  | abrt-1.1.13-4.el6.x86_64
                                                              > abrt-addon-ccpp-1.1.13-4.el6.x86_64
                                                              > abrt-addon-kerneloops-1.1.13-4.el6.x86_64
                                                              > abrt-addon-python-1.1.13-4.el6.x86_64
                                                              > abrt-cli-1.1.13-4.el6.x86_64
                                                              > abrt-desktop-1.1.13-4.el6.x86_64
                                                              > abrt-gui-1.1.13-4.el6.x86_64
                                                              > abrt-libs-1.1.13-4.el6.x86_64
                                                              > abrt-plugin-logger-1.1.13-4.el6.x86_64
                                                              > abrt-plugin-rhtsupport-1.1.13-4.el6.x86_64
                                                              > abrt-plugin-sosreport-1.1.13-4.el6.x86_64
                                                              > centos-indexhtml-6-1.el6.centos.noarch
                                                              > centos-release-6-0.el6.centos.5.x86_64
firefox-3.6.9-2.el6.x86_64                                    | firefox-3.6.9-2.el6.centos.x86_64
gnome-desktop-2.28.2-8.el6.x86_64                             | gnome-desktop-2.28.2-8.el6.centos.x86_64
httpd-2.2.15-5.sl6.x86_64                                     | httpd-2.2.15-5.el6.centos.x86_64
httpd-tools-2.2.15-5.sl6.x86_64                               | httpd-tools-2.2.15-5.el6.centos.x86_64
initscripts-9.03.17-1.el6.x86_64                              | initscripts-9.03.17-1.el6.centos.x86_64
                                                              > libtar-1.2.11-16.el6.x86_64
nss-3.12.7-2.el6.0.sl6.x86_64                                 | nss-3.12.7-2.el6.x86_64
nss-sysinit-3.12.7-2.el6.0.sl6.x86_64                         | nss-sysinit-3.12.7-2.el6.x86_64
opal-3.6.6-4.el6.0.sl6.x86_64                                 | opal-3.6.6-4.el6.x86_64
pilot-link-0.12.4-6.el6.0.sl6.x86_64                          | pilot-link-0.12.4-6.el6.x86_64
plymouth-0.8.3-17.sl6.2.x86_64                                | plymouth-0.8.3-17.el6.centos.x86_64
plymouth-core-libs-0.8.3-17.sl6.2.x86_64                      | plymouth-core-libs-0.8.3-17.el6.centos.x86_64
plymouth-gdm-hooks-0.8.3-17.sl6.2.x86_64                      | plymouth-gdm-hooks-0.8.3-17.el6.centos.x86_64
plymouth-graphics-libs-0.8.3-17.sl6.2.x86_64                  | plymouth-graphics-libs-0.8.3-17.el6.centos.x86_64
plymouth-plugin-label-0.8.3-17.sl6.2.x86_64                   | plymouth-plugin-label-0.8.3-17.el6.centos.x86_64
plymouth-plugin-two-step-0.8.3-17.sl6.2.x86_64                | plymouth-plugin-two-step-0.8.3-17.el6.centos.x86_64
plymouth-scripts-0.8.3-17.sl6.2.x86_64                        | plymouth-scripts-0.8.3-17.el6.centos.x86_64
plymouth-system-theme-0.8.3-17.sl6.2.noarch                   | plymouth-system-theme-0.8.3-17.el6.centos.noarch
plymouth-theme-rings-0.8.3-17.sl6.2.noarch                    | plymouth-theme-rings-0.8.3-17.el6.centos.noarch
plymouth-utils-0.8.3-17.sl6.2.x86_64                          | plymouth-utils-0.8.3-17.el6.centos.x86_64
redhat-logos-60.0.14-1.sl6.1.noarch                           | redhat-bookmarks-6-1.el6.centos.noarch
redhat-lsb-4.0-2.1.el6.x86_64                                 | redhat-logos-60.0.14-10.el6.noarch
redhat-lsb-graphics-4.0-2.1.el6.x86_64                        | redhat-lsb-4.0-2.1.el6.centos.x86_64
redhat-lsb-printing-4.0-2.1.el6.x86_64                        | redhat-lsb-graphics-4.0-2.1.el6.centos.x86_64
                                                              > redhat-lsb-printing-4.0-2.1.el6.centos.x86_64
report-0.18-7.sl6.x86_64                                      | report-0.18-7.el6.centos.x86_64
report-config-ftp-0.18-7.sl6.x86_64                           | report-config-ftp-0.18-7.el6.centos.x86_64
report-config-localsave-0.18-7.sl6.x86_64                     | report-config-localsave-0.18-7.el6.centos.x86_64
report-config-scp-0.18-7.sl6.x86_64                           | report-config-scp-0.18-7.el6.centos.x86_64
report-gtk-0.18-7.sl6.x86_64                                  | report-gtk-0.18-7.el6.centos.x86_64
report-newt-0.18-7.sl6.x86_64                                 | report-newt-0.18-7.el6.centos.x86_64
report-plugin-ftp-0.18-7.sl6.x86_64                           | report-plugin-ftp-0.18-7.el6.centos.x86_64
report-plugin-localsave-0.18-7.sl6.x86_64                     | report-plugin-localsave-0.18-7.el6.centos.x86_64
report-plugin-scp-0.18-7.sl6.x86_64                           | report-plugin-scp-0.18-7.el6.centos.x86_64
sl-bookmarks-6-1.sl6.noarch                                   <
sl-indexhtml-6-1.sl6.noarch                                   <
sl-release-6.0-6.0.1.x86_64                                   <
sl-release-notes-6.0-1.noarch                                 <
xfsdump-3.0.4-2.el6.x86_64                                    <
xfsprogs-3.1.1-4.el6.x86_64                                   <
xulrunner-1.9.2.9-1.el6.x86_64                                | xulrunner-1.9.2.9-1.el6.centos.x86_64
yum-3.2.27-14.el6.noarch                                      | yum-3.2.27-14.el6.centos.noarch
yum-autoupdate-2-1.noarch                                     <
                                                              > yum-plugin-fastestmirror-1.1.26-11.el6.noarch