|
|
Log in / Subscribe / Register

Source Based Distributions, Part 1

[This article was contributed by Ladislav Bodnar]

One of the great advantages of open source software is the availability of its source code. This, combined with free compilers and interpreters, gives us a relatively painless way to compile open source applications into executable binary files, nicely tailored to our hardware. The idea has caught on and we have seen an emergence of several source-based Linux distributions over the last few years. Indications are that they are becoming increasingly popular, especially among computer aficionados and home users.

What makes one decide to use a source-based distribution, such as Gentoo or Sorcerer, over a more traditional binary distribution, such as Red Hat or Mandrake? These are the often cited advantages:

1. Speed. When you compile an application specifically for your hardware and with correct compiler flags, it should execute faster than an application that was compiled with more generic compiler flags to cover wide range of processor architectures. In the cases of large programs, e.g. KDE or OpenOffice, the increase in speed will be noticeable.

2. The freshness factor. The world of Linux is full of great software, and new releases are announced daily. If you use a binary distribution, you have to wait until binary packages for your distribution become available, which can take months. There is no such delay with source-based distributions - in most cases you will be able to run the latest version with all the great features within days of its release.

3. Painless software installation. Most source-based distributions provide a sophisticated infrastructure to download, configure, compile and install software (and its dependencies) with one simple command. In majority of cases this works surprisingly well. Have your heard people complaining how hard it is to install software on Linux? That's because they have never tried a source distribution.

4. No software restrictions. Source distributions have learned the art of by-passing restrictions imposed by vendors of useful, but proprietary software (such as the NVidia video drivers) or software illegal in certain countries (such as libdvdcss library for watching encrypted DVDs). Since they don't supply the actual software, only scripts that fetch the packages from the maintainers' web sites, they are not subjected to those restrictions. Most binary distributions are reluctant to include such software.

Before you decide that a source distribution is perfect for your needs, consider some of the disadvantages.

1. Long and tedious installation. Getting your machine from empty hard disk into a full graphical environment with all the latest applications will more than likely take several days, even with a broadband connection and a fast processor. With a binary distribution, the same can be achieved within an hour after inserting the installation CD.

2. High maintenance level. Because of continuous and never-ending software upgrades, things will break. An innocent looking new library version can cause havoc on your system, due to new bugs or incompatibilities with existing libraries. It can be frustrating to work on a system which regularly lets you down.

3. Stability issues. Source distributions are notoriously reluctant to declare their releases "stable" and many of them seem perpetually stuck in a "beta" or "release candidate" state. As such, they are not suitable for production servers and their use is generally limited to workstations.

4. Fast Internet connection. While broadband is not a requirement, very few people will have the patience to maintain a continuously evolving source distribution over a slow, dial-up connection.

There are four major and well-established source-based distributions: Gentoo Linux, Linux From Scratch, ROCK Linux and the Sorcerer group (which includes Sorcerer, Lunar Linux and Source Mage GNU/Linux). We will look at these in more detail in an upcoming issue of LWN.


to post comments

Source is the future - roll on Gentoo

Posted Apr 3, 2003 11:09 UTC (Thu) by alspnost (guest, #2763) [Link]

Thanks for the excellent, concise article. I'm now a fully-converted Gentoo user, and I've basically never looked back. It's worth pointing out that Gentoo, specifically, has many other advantages, and is really a lovely piece of engineering.

As it happens, the installation didn't take "days" for me. I have 512k broadband and an Athlon 1800+, but this sort of power is increasingly common, and cheap of course. Using the stage3 LiveCD, I went from bare metal to gorgeous KDE 3.1 desktop in about 18 hours.

Of course, you only do the initial installation once. After that, there are very few components of the system that can't be recompiled (when you upgrade versions etc) overnight, so it's really not an issue. No more wasted overnight CPU cycles though ;-)

As for stability, I've actually had ZERO problems so far! I've stuck with packages marked as "stable" by Gentoo, and I'm using optimal (but not completely overboard) compiler flags, and everything has run like a dream from day one.

So people - say goodbye to the RPM world and go the way of the source. It's a revelation....

Another Gentoo convert

Posted Apr 3, 2003 15:13 UTC (Thu) by broom (guest, #2914) [Link]


I've also switched from RPM distributions (Redhat & SuSE) to Gentoo and am very happy. I also stick with the stable package set (except once).

I really like the incremental control I have about upgrading components. On my 2000+ Athlon, I upgrade most packages within a few days of their release. On my 400 MHZ K6-3, I upgrade much less frequently and usually overnight. On my son's machine, I upgrade very infrequently. (My wife's machine still runs SuSE - she abhors change.)

All my Gentoo "upgrades" have been in place. I've upgraded C compilers, libraries, X11, KDE, and Gnome and heaps of other stuff (not all at once!) without rebooting the machine. (I had 135 days uptime before I needed to recompile the kernel to include a new feature.) The resulting system *is* a current Gentoo install, not a patched older system. I can't imagine having to reinstall from scratch in order to upgrade like I used to with Redhat/SuSE (upgrading an existing install used to take a bit longer than forever).

Another key advantage for me is that when I want to try out a new package, I can easily install the latest stable version with one simple command (although if it's a big package and/or it depends on lots of other stuff I don't have installed, it can take a while). I still remember wanting to try a new package under Redhat/SuSE, and having a choice between the really outdated package on the CDs or the nightmare of trying to find newer RPMs and all their dependencies.

Regards,
Bradley

Source Based Distributions, Part 1

Posted Apr 3, 2003 17:20 UTC (Thu) by mmealman (guest, #9223) [Link]

Pretty good article that does well to point out both the benefits and flaws of a source based dist. I'm an old Debian user who's recently gone to Gentoo(on my workstation anyway) and I definately see a lot of potential in this type of distribution.

I think the stability issues of source based distributions should improve over time as they refine their stable vs unstable package management systems.

Source Based Distributions, Part 1

Posted Apr 3, 2003 18:02 UTC (Thu) by pj (subscriber, #4506) [Link]

Sometimes optimization can cost you, though: I run a server for me and my friends, colocated at a local ISP - therefore I want high availability. When that server (an athlon) crashed due to a blown CPU fan, I decided to get a server with better cooling, so I bought a Dell PowerEdge 350 with a GHz P3. If I'd been running a source distro I would have had to recompile the entire OS to run on the P3 vs the athlon. As it was, I just plugged the old drives into the new box and was up and running. I guess the point is: it's only safe to optimize on architecture if you're sure you're never going to switch.

--pj

Source Based Distributions, Part 1

Posted Apr 4, 2003 10:30 UTC (Fri) by amikins (guest, #451) [Link]

I've actually used three of these source distributions at this point. Sorcery, Sourcemage (fork of Sorcery), and Gentoo.
I'm currently using Gentoo because it seems to have the most sane method of updating the stable scripts of the set, even though I think Sorcery has a better design. Management of the individual packages with the Sorcery groups leaves me with a bit to desire, however, although I'm starting to fear that Gentoo is starting to hit the limits of its implementation.

In any case, the source-based system /does/ seem like the sanest way of handling things nowadays.

Real advantages?

Posted Apr 4, 2003 22:50 UTC (Fri) by daenzer (subscriber, #7050) [Link] (3 responses)

I'll probably get flamed for this given the current hype about these distros, but the stated advantages of this approach seem to be myths:

1. The performance of the vast majority of software is bound by other factors (it doesn't matter too much how optimized the code to wait for something is :). You can always rebuild packages for which this does make a difference.

2. Integrating the various components of a system is basically the same work no matter if they are distributed as source or as binaries (one might even argue that source based is harder to get right because you have less control over the components on a given system). If the source based distros are indeed more up to date, that smells like less of that work is put into them. Hence it's no surprise, e.g., that 'An innocent looking new library version can cause havoc on your system'.

3. You can do that without having to build everything yourself. It's a matter of the packaging tools.

4. This can be done with binaries via installer packages or whatever.

All in all, I've yet to see a real significant advantage over Debian (disclaimer: I'm a Debian developer so obviously biased :) or other binary distros with sane packaging tools. I think there's too much emphasis on source vs. binary distribution when the issues that really matter lie elsewhere.

Some of the stated disadvantages on the other hand are more plausible. :-P

Now it's time to put on my asbestos suit and crawl back under my rock...

Real advantages?

Posted Apr 5, 2003 9:11 UTC (Sat) by mongre26 (guest, #4224) [Link]

Daenzer you will get no flames from me.

I love that open source provides the flexibility and freedom where distros like gentoo can thrive. However they simply to do fit the my problem set very well.

I manage high performance clusters of Linux systems and for those environments source based distros are out of the question.

The problem is source distros do not scale beyond a single person and a single workstation. By design each source based node is unique, and while that is fine for the single node sysadmin it simply does not work for me.

I use a distribution for clusters called Rocks based on Redhat (currently 7.3).

http://www.rocksclusters.org/Rocks/

Is it binary? You better believe it. Is it flexible? For sure. Is it scalable? without a doubt.

Rocks advantage in high performance computing is not its uber optimized binaries but the fact that I can install an entire cluster of dozens or even hundreds of machines in minutes with any combination of binary packages and job queue tools. One of my clusters can be completely re-installed in under 5 minutes and ready to accept jobs. It simply does not make sense to waste hundreds of mips hours just to get a marginal improvement in performance.

Sure to a home user those cpu cycles are unused anyway, but for these environments each minute they are not working on experimental work is a waste.

My work is computing industrial style, push a button, and watch it go.

Where am I going with this?

Source distros are popular probably for the same reason putting after market gear in your hot rod is popular, it allows you to put you personal stamp on your OS. However any claims of performance improvements are largely anecdotal from what I have seen and completely ignore the millions of clock cycles and killowatt hours of power consumed to even get a machine up to a basic level.

So the source distro guys can have their fun with their little hot rods, I personally get my kicks from my marching army of compute nodes all singing the same tune as they crunch tera-flops of instructions and process peta-bytes of data all using a quickly deployed binary only distro.

To each their own...

Real advantages?

Posted Apr 6, 2003 7:36 UTC (Sun) by qubes (subscriber, #2562) [Link] (1 responses)

>1. The performance of the vast majority of software is bound by other factors (it doesn't matter too much how optimized the code to wait for something is :). You can always rebuild packages for which this does make a difference.

I use both debain and gentoo. And you are partly correct. Servers are usually io bound, at least that's what I've found for a web/mail server.
On the desktop, the "extra" optimizations really do help. On this 1.33gHz/256Mg laptop, gentoo is much faster then knoppix (window movement, lanch times, scp speeds, kernel compile times, ect.)

>2. Integrating the various components of a system is basically the same work...

Really? I don't think you're giving upstream developers enough credit. And here is why I think source based distros work so well: developers use more upto date software then they feel comfortable stamping as "stable", users of source based distros are usually compentent enought to figure out the easy problems. The packaging commands may be simple, but the setup of any source based distro keeps the timid on lindows (or knoppix).

That said, I think you missed 2 points:
3. Stability is paramount in the server space. Production work _can't_ chase the bleeding edge of development. Gentoo might have this worked out with their testing/stable split where the daring can test things out and live to tell stories. Time will tell if the "stable" designation is correct .

4. Speed of install/downgrade. If you run into problems in that last upgrade, you want to be able to _quickly_ get back to a known good version. Binary images are just so much faster for this, it isn't even funny.

A happy debian/gentoo user,
Thomas

PS: thanks for all of the great work you and all DD's do. Without debian pushing stable, workable solutions for how to put together a distrobution of linux, my desktop would be very bleek and XP'ish.

Real advantages?

Posted Apr 10, 2003 8:06 UTC (Thu) by Klavs (guest, #10563) [Link]

>The problem is source distros do not scale beyond a single person and a >single workstation. By design each source based node is unique, and while >that is fine for the single node sysadmin it simply does not work for me.

Well that is not necessarily true. F.ex. Gentoo (which I use) supports building binary packages (even rpms if you like) automatically.

So for one - if I decide to try a newer version of a library or anything I will always be able to roll back to the old one within seconds (just as you can do if you keep the old rpm).

When I use Gentoo for servers - I use a buildhost - ie. I build all my packages on one host - and then all my servers only use binary packages.
So I actually built my own "distro" - as source-based systems such as Gentoo is referred to as "meta-distro"'s - and all my servers are a 100% alike.

The advantage here - over binary-based distro servers - is that if I need the newest version of a single piece of sw (or two) - which often happened to me atleast - I can just build and install that. If I use a binary based distro I have to upgrade my entire distro - to get the newest versions of the two programs - which means server downtime (even with debian dist-upgrade - it doesn't work flawlessly - atleast in my experience). And doing this kind of upgrade for 50 servers is time-consuming :( - not so if you use the buildhost and sourcebased distro approach.

Just my 5 cents :)

other problems

Posted Apr 9, 2003 8:04 UTC (Wed) by mbp (subscriber, #2737) [Link]

Before I criticize it, I need to say that I'm happy to see so many new free software flowers blooming.

However there are some additional drawbacks from distributions like Gentoo compared to binary distributions:

- Bug reports to upstream maintainers are much less useful, because every single Gentoo machine is different. Users often don't know what exact versions they have on their machine, and they don't know why they're different. It's not easy for a maintainer looking at a bug report to reproduce the programs that are failing.

- Some people have the idea that compiling from source is more secure, which is a complete furphy as far as I can see. Unless you actually audit *all* the source you're building, you might as well install binaries. Briefly glancing at it is not an audit. Nobody does it.

- I'm not sure that debugging build problems and other time spent on a source distribution is really a good use of time. Perhaps fixing actual bugs would be better? I'm not sure if this is a really good argument though; sometimes building more really does find problems.


Copyright © 2003, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds