“I love Gentoo, [but] I also hate it with a vengeance. I’m not talking small time peeves here, like the way Krispy Kremes icing gets all over your fingers (and by extension, clothes). I’m talking the type of frustration that is expressed in multitudes of expletives, some of which would make the profinsaurus cry. Why? Because, by definition and by nature, a source-based distribution is its own worst enemy.”
People who misunderestimate their time requirements cause hate.
If you really don’t care about the details, use a less time-intensive distro.
After two years of Gentoo, my chief complaint is that its innards could be better documented, not that I’m investing the time to accomplish that.
Gentoo doesn’t require you to be a ricer.
Most of the people I’ve seen fall off of the Gentoo wagon just don’t want to take the time to maintain their systems. When modular X.org’s 100s of updated packages is being blocked by X.org 6.9, instead of looking at the modular X upgrading guide (or just unmerging 6.9 and plowing ahead), they just throw up their arms and don’t update at all. I really doubt that people like that even have the time or desire to do a yearly re-install of their machines (as required by Suse & Fedora), so there’s not much option left for them besides Debian Stable and Ubuntu LTS.
Misunderestimate? George Bush, is that you?
No, he’s on one of the other Internets.
The worst enemy of source based distro is people lifetime, period.
…there’s no ‘best choice’ default desktop styling, interaction, and package list that people can rely on for consistency. If you install the new Gnome for example you get Gnome default, not a Gentoo tailored version (compared for example with Ubuntu, where it will be themed and configured to the distro).
Gentoo purports to be a roll-your-own Linux distribution. One of its purposes, therefore, is to offer a vanilla desktop for *YOU* to tailor to your liking. There *are* gentoo-artwork packages for GDM/wallpaper/etc., but these are optional. You can choose to be as plain or as customized as you want.
I enjoy other distributions’ customized GNOME and KDE environments, but I also like that I can rely on Gentoo for a vanilla desktop. Especially since GNOME 2.16 was released, you really start to see that GNOME can mostly carry its own weight (w/o distro-specific customizations)… a good “dose of reality,” if you will. There are, of course, portage overlays that you can import for an even further-tailored/branded desktop.
Flexibility is one of Gentoo’s strongest suits; it fits an important niche.
And the biggest of the big — it will break. …upgrade individual packages will eventually break another package, even in the ’stable’ tree
If your one of those folks who does an “emerge –sync” every day and always automatically follows with an “emerge –update –deep –newuse world” command w/o really looking at the list critically… then, yes, you WILL break your system at some point.
If stability and non-breakage is important, you selectively update your packages. Apply the updates that fix critical security holes or items that *specifically* apply to you. Remember the old “if it ain’t broke, don’t ‘fix’ it” adage?
This is true on ANY distro. Hell, even Ubuntu had a “stable” update that broke people’s Xorg’s a few weeks back. You can’t infer that source-based distros are the only distros to suffer from package update breakage.
Well, as a distribution developer of one of the things mentioned in the article let me tell you that even updating a seemingly innocent package by a patch-level release is like playing a game of cats cradle:
You pull a string here and a knot appears somewhere else.
I’m especially looking at bdb, automake, freetype, some gnome libraries (which you STILL need the 1.4 version of for some programs and the 2.4 version for others) and a multitude of others. Sometimes program A relies on library B, B changes its API in a minor or even patch level release but A isn’t updated for a few more weeks.
What can you do? Patch the program, yes. but try doing that on a scale of roughly 500 packages.
In short: emerge and USE flags are great, but the actual work is done elsewhere.
Well, as a distribution developer of one of the things mentioned in the article let me tell you that even updating a seemingly innocent package by a patch-level release is like playing a game of cats cradle
That’s BS. I compile everything from source, and know pretty well which one are problematic. So I’m prepared. How come someone like you can’t do that ?
I’m especially looking at bdb, automake, freetype, some gnome libraries (which you STILL need the 1.4 version of for some programs and the 2.4 version for others) and a multitude of others
Gnome libraries is another non-problem. There is no problem in keeping both Gnome 1 and 2 together. Of course, gcc evolves and becomes stricter, so sometimes, you realize you have to patch your old gnome libs for them to even compile. I know, because when I have the time, sometimes once a year, I launch my automated boot CD build and see if it still compiles everything and create the boot CD for my custom OS without a hitch.
Berkeley DB is a very well known one, it seems stabilized with 4.4 series, and basically affect my OpenLDAP, PHP and Apache. OpenSSL is a known one too.
I never had any problem with automake and freetype, except one time with freetype, on my MythTV box, where I prefered installing two freetype versions instead of patching an app for it to accept the 2.2 version.
Sometimes program A relies on library B, B changes its API in a minor or even patch level release but A isn’t updated for a few more weeks.
What can you do? Patch the program, yes. but try doing that on a scale of roughly 500 packages.
Simple : you can wait too, and just leave the new B for now. Perhaps it’s not so easy with distros.
But for example, with BDB and OpenSSL, if I leave the old versions, I have exactly zero problems, except that I don’t use the newer ones then.
Well, as a distribution developer of one of the things mentioned in the article let me tell you that even updating a seemingly innocent package by a patch-level release is like playing a game of cats cradle
That’s BS. I compile everything from source, and know pretty well which one are problematic. So I’m prepared. How come someone like you can’t do that ?
Oooh, we gots us a smartass here.
I was not saying I don’t know about them nor that I come unprepared for them.
What I was saying and still am saying is that if you update certain packages (there are quite some of those) you will break others.
But thanks for emphasing on how great you are in knowing that, too.
Simple : you can wait too, and just leave the new B for now. Perhaps it’s not so easy with distros.
unfortunately, it really isn’t. Users expect you to have all the latest bells and whistles.
If you plan to release on the 3rd and KDE 4.0 is released on the 2nd and you don’t have it in your release, people are going to bash you for it.
If you HAVE KDE 4.0 and had to drop an app that only works with 3.x, people will bash you for it.
You just can’t make it right.
But for example, with BDB and OpenSSL, if I leave the old versions, I have exactly zero problems, except that I don’t use the newer ones then.
Oh yes, and the potential security problems are no problems, of course.
If your one of those folks who does an “emerge –sync” every day and always automatically follows with an “emerge –update –deep –newuse world” command w/o really looking at the list critically… then, yes, you WILL break your system at some point.
Yeah. I was one of those folks. I didn’t have a problem with breakage, but I got sick of compile times and stopped using Gentoo. But now that I’m no longer new to Linux and don’t see it as a form of entertainment and don’t always have to be fiddling with it and getting the latest packages, it occurs to me that I did a lot more compiling on Gentoo than I needed to.
Maybe one day I’ll go back, setup a stable system, and leave it there (except for security updates of course).
One ought to put in a “pretend” in the second command… never ever emerge anything without _p_retending or at least _a_sking prior to emerge.
I’m using Gentoo in my machines because I have full control on everything that gets installed into my machines; I needed some very small machines (just OS, svn and g++) that could not build with other distros (they install a lot of libraries that I will never use).
Gentoo’s Portage is based on the BSDs ports system (pkgsrc and Port collection) and in the BSD world, this mode works perfectly!!!
You don’t actually need to have full control of what get installed (unless you have a very old and small drive of course). What isn’t used, well, isn’t used. How could something that isn’t ever run ever hurt you?
The above paragraph sounds a little like Microsoft talking about the inability to deinstall Internet Explorer.
Sorry, but it’s true…
If you have a lot of virtual machines just for testing a cross-platform application, you really need to have the least occupied space. Gentoo helps me, BSDs also help me… but another distros like Fedora or Suse, not.
You don’t actually need to have full control of what get installed (unless you have a very old and small drive of course). What isn’t used, well, isn’t used. How could something that isn’t ever run ever hurt you?
Err…I can for example compile in support for mp3s, or any other codec. Or I can enable/disable some other (mis)feature. And, heck, I don’t like to clutter my hard drive or menus with stuff I don’t use. Isn’t it rather stupid to install everything and edit the menus just to hide all those that are not in use when you can just choose not to install them altogether? This is why I use Gentoo. If not doesn’t suit you, it doesn’t mean it doesn’t suit me…
Gentoo’s default install is little more then a compiler toolchain and base gnu tools.
If you need to make a small footprint system that includes a compiler this is great…. if you need to make a small footprint system that doesn’t need a compiler… then you have a lot of bloat.
with the other posters’ comments in favour of Gentoo. It’s great once you know what you’re doing, which isn’t a problem, because it’s FOR people who know what they’re doing.
Would I replace Windows XP on my dad’s laptop with a source-based distro? No. But I wouldn’t replace Gentoo on my own laptop with XP, either!
All I heard was yah-blah-blah. I never really got the point? At once the writer said that the dependencies would break, because it’s not humanly possible to maintain 10s og 1000s of packages without breaking dependencies. That happens in binary distributions as well. The point about the artwork didn’t have anything to do with the distribution being source-based… that’s only if you use original source, which most distributions don’t. There are also many binary packages without the proper artwork manipulation in SUSE, Fedora and Ubuntu.
And yes, it takes time to compile. It always did. No news there. And you have to type in your own configuration files? Well, duh… if that’s so bad you can just “emerge some-gui”.
This guy needs to look at the definitions of source based distributions or maybe just switch to Linspire or Windows or the newly available: Linux XP
Here comes the POV of someone that has its own Linux OS compiled from source (which would be even worse) !
I have every single one of the Gentoo advantages, plus others. I don’t use Gentoo, but most of the bad I can relate too.
And lots are wrong. Compile time : no problem at all. At worst it means you will get your binary later, which is no problem.
Fiddling with config files : this is plain wrong. I fiddle with config files the first time some app is installed, or when a really major change is made in the program (rare occurrence). For example, I didn’t update my MPlayer conf for years, and changed it (1 or 2 lines) only when the new ALSA API went stable. Or my Apache conf, which I just checked when I went to 2.2. I never updated it since the first time I configured it. The only thing I fiddle with sometimes now is my personal udev rules file, as udev still isn’t really stable (but we’re nearly there).
Bandwidth was never a problem. It’s less a problem than with binary distro, as text compress far better than binaries. Yet, it’s true that my source kernel download is bigger than what I get after compilation. But bandwidth is not a problem to me. I download far faster than my main computer can compile. It takes my computer 24 hours to compile KDE (KDE forces the use of only one processor most of the time).
Lack of standardisation : wrong ! When I install the new Gnome or KDE, they keep all the config I had before, so I keep the same desktop as before, and it’s the best choice, as it’s the one I want. The guy is clueless on this one.
And the biggest of the big is plain BS : it WON’T break. I have the same OS since 2001, still managed the same way. It never break, except when I know it will, which I call big migrations, like devfs -> udev, or pthread -> tls, or lvm1 -> lvm2, or XFree86 -> modular Xorg. These are the only time consuming parts.
Also, I have only the packages I need (which are 2000+ actually). Another time consuming part is creating the profile for a new app (takes 2 minutes), like I’ve did yesterday for my brand new black iPod 80 Go. Actually, that’s a good example. I received it yesterday, and the day before, saw banshee didn’t work with the new generation iPod.
So I checked gtkpod, saw it was even older, then checked the CVS like they recommend, and saw they fixed the problem.
So, when creating my profile for libgpod and gtkpod (which I never used before), I added a temporary CVS version, which is the one I run now, and it works with my new iPod. Now, these apps are a bit archa"ic about PnP, but at least it works. I’ll try Rhythmbox when I can make it work (right now it crashes), and of course, Amarok.
The most time consuming part will be finding the good hal configuration.
But the best thing about this article, is that the guy actually know what he’s talking about. This is pretty rare in non-technical Linux article lately.
I’ve been seeing a lot of Gentoo Blows articles lately, and I thought this would be the same thing. It was pretty fair.
If you want a distro where every single aspect of the system is to your exact specifications, then there isn’t anything better than Gentoo. That’s what I love about it. Every Gentoo machine I have is completely different.
Would I install Gentoo on my parents’ machine? Probably not.
-Compiling is time consuming
Compiling from source is always slower than binary install, but you save time from debugging applications in case thing goes wrong. All too often binary packages are not compiled correctly for your system, especially for third party packages. E.g. different CPU (e.g. 786 vs 686) ,kernel/library version (glibc 2.0 vs glibc 2.1) etc. This type of mismatch usually results in application being silently killed randomly and the problem is hard to pin down.
Compiling from source will force all aforesaid to be checked, thus the resulting binary always match your system configuration. This saves a lot of time troubleshooting than a binary base distro.
-Downloading source waste bandwidth
Source code is usually smaller than the binary. What does the author really want to say?
-lack of standardisation
This is really a matter of taste. Binary distro trends to heavily customise the packages and masked a lot of internal detail from end user. This approach is easier for newbies to get start but not necessary suit the taste of 1337/admin. Beside customisability, source base distro expose the internal and you learn how things really work under the hood.
-source base package system breaks easily
What the author mentioned in the article is dependency hell. This is not unique to source base distro; binary based system suffers more so. Actually source based distro help alleviates the problem via 2 ways:
1. Conflicting modules/features of a package can be turned off in the compile.
2. Source based distro usually keep ALL packages on a central repository, and maintainer can oversee inter-package interactions.
(1) is not possible with binary distros. (2) binary distro trends to have multiple isolated repository, especially for 3rd party package.
-Source code is usually smaller than the binary. What does the author really want to say?
No. Compare OpenOffice.Org in ports tree download (~200mb) with for example ubuntu .deb which is roughly 100mb. Most others are this as well. Why? Because sources are usualy packed for all platforms and architectures with X-times the docs and other crap you don’t need.
-What the author mentioned in the article is dependency hell. This is not unique to source base distro; binary based system suffers more so. Actually source based distro help alleviates the problem via 2 ways:
Umm.. no. Perhaps old rpm systems were such but not todays and especialy not .deb. I used both FreeBSD and Ubuntu and I must say I managed to break the ports about 5 times out of which 1 was really not my fault.
On the other hand I never got anything in the apt system broken here, just packages which were marked as such but that’s not “broken system”.
I’m saying this as someone who loves freeBSD but can’t use it because it’s source based and has missing stuff like virtualization and a few other desktop related things.. I really wished that FreeBSD/debian was more popular…
Edited 2006-09-22 17:38
I’m saying this as someone who loves freeBSD but can’t use it because it’s source based
Um, source based?
FreeBSD has ports & packages. You can either install a package directly from a mirror, or generate a package by compiling the port.
Why is there this misconsepetion that BSD packages have to be compiled by the user to be installed?
You can’t call FreeBSD “source based”: The installation is from binaries and one can use pre-built packages instead of ports. FreeBSD 6.2 will have “package based” security updates. You only need sources if you want or need FreeBSD-current and the ports.
FreeBSD supports virtualization: Jails, QEMU & kQEMU, Xen3-DomU,… (I’m not sure about VMware)
While source code will often dwarf a binary, stupid articles on the Interweb waste bandwith and time. The bandwidth and time of all of the people that get sucked into reading and ridiculing the author. Oh, won’t the authors of the world think of the bandwidth and time squandered by their inanity?
One of the things that I like about Linux is that it’s so customizable. The many distros are a testament to the fact that peoples’ needs differ. But the flip side of all that flexibility is that, because there are so many distros, there are standardization problems, dependency problems, conflicts, etc. In a lot of ways, it would be easier if we were all using and enhancing the same distro. I believe that having many distros has served as a distraction for developers and has forked their attention. My hope is that one distro will rise from all the others. SuSE, Ubuntu, and Linspire stand a very good chance of doing just that. But there’s still competition between these distros, to some degree, and it will probably take years before it’s sorted out. Not that I’m opposed to having alternate (and possibly lesser used) distros.
This is why I dropped Gentoo. It was taking too much time to compile, tweak and download software/updates on my 56Kbps connection to the Internet. I have lost nights and days with the computer always on downloading and compiling. This is not possible for my case in which time is very short.
My laptop currently dual boots between Debian and Source Mage, which I chose because of its easy menu-driven package manager, called “sorcery”. Actually, I spend most of my time on Debian but it’s reassuring to know that I can get work done even if Debian should have some unexpected problem.
My Source Mage system has pretty much the same functionality and the same programs that I use on the Debian side. I run “sorcery system-update” once a week before I go to sleep. The next morning when I wake up, Source Mage has updated all the installed programs to the latest versions. It’s not much trouble to maintain Source Mage after you’ve successfully installed and configured all the applications you need. Source Mage isn’t any more difficult than, say, Arch Linux — it might even be a bit easier.
Installing packages on a source based distro is slower than on a distro with ready-built binary packages and sometimes there may be build errors that can be annoying. Also configuring the system and individual applications requires some knowledge on how GNU/Linux systems work. Gentoo’s detailed and comprehensive documentation can become useful also for Source Mage users.
Judging from their website, Source Mage has about 50 developers (although I don’t know if they’re all active) and almost 5000 packages. Source Mage installs first just the base system from ready-built binary packages and then you can opt either to rebuild the whole system with your own optimizations (“sorcery rebuild”) or just go on and install the applications that you want. Instead of packages Source Mage has scripts, called “spells”, that download and install the actual packages from their developers’ websites.
Source Mage has two main collections of spells, “stable” and “test”. The spells in “stable” (that is the default after installation) are more tested and “test” is a development branch that has newer versions of the same spells/packages. There’s also the “games” spell collection, and “z-rejected” that has non-free stuff and some binary packages.
The main advantage of Source Mage is the menu-driven package manager that you can use, in addition to selecting and installing packages, also to configure most aspects of package management (like optimizations) and to view the compile & install log files. Source Mage also lets you enable/disable features in applications by editing their makefiles and you can select which optional dependencies you want to include/exclude. The sorcery package manager has also some “self-healing” features that check the integrity of packages and try to mend all found problems automatically (“cleanse –fix”).
I loved the idea of SourceMage, but couldn’t quite figure it out at the time (0.9.4), it always kept asking the same configuration questions, I couldn’t get it to just go with the current settings when rebuilding. It looked very powerful, more powerful than Gentoo, very fast too, but I couldn’t quite get into it. Maybe when there’s a bit more documentation on how to actually run & maintain your system I’d try again.
Hmm… The current version of Source Mage is 0.9.6 — it’s coming closer to the 1.0 release.
My impression is that Source Mage remembers most of the configuration questions you’ve already answered. You really need to use the “-r” switch (like in “cast -r some_spell”) if you want to reconfigure the application and answer all those questions again. Otherwise, sorcery will only ask you few questions, it will remember most of the answers you’ve already answered before. Also, all the changes you’ve made to the makefiles of specific applications will automatically be saved in /etc/sorcery/local/config_option_cache/ and all the successive upgrades of that program will automatically use the same makefile modifications.
I’m using Gentoo and it is the first distro that really works for me.
My main problem is compile time and it seems to be the major problem people have with source-based dirstros. I can accept the fact that compilation takes a lot of time. What I can’t accept is the poor state of build software such as the GNU gcc and autoxxxx utils. Most projects use them, which results in slow install performance for all source-based distros.
Much could be done to better this situation and here is some of the ideas I came up with while watching Gentoo install
autoconf: This should not take forever. I don’t know the exact problems it has to deal with, but something tells me that this could be improved.
gcc: When building projects with hundreds of source files a new process is started for each file. This impose a huge overhead for process creation, heap mapping, TLB filling, etc. gcc needs to have ‘make’ build in so it can build the whole project in one go.
LLVM or other simular projects: Much of the compile time could be shaven of if project could be distributed in a partially compiled format like LLVM bytecode. Sadly this requires programing languages that don’t through away platform dependant information as the preprocessor does in C/C++. While this would be sweet I don’t see C/C++ disappear in the near future
Just my 2 cents…
“My main problem is compile time…”
Gentoo. It’s a source-based distro primarily made to meet the desires of what you NEED a box to be.
I need a MySQL server. It’s a MySQL server.
I need a web server. *BOOM!* It’s a web server.
I need an IDS. *BLAMMO!* It’s an IDS.
I need an IRC server. *BUSH FALLING WITH A LOUD THUD!* It’s a place of congregation where people can call each other ‘The Devil’ and say your religion is ‘inhuman and evil.’
I had to build a new box just yesterday. Of course, having a broadband connection helps. But with a BASE system, you can build it to what you NEED it to be and THAT’s the REAL power behind a source-based distro, with special emphasis on Gentoo.
My boss was a little concerned with my choice of Gentoo for one of our servers – he’d prefer RedHat’s Fedora or Novell’s SuSE for the task. They’re fine for desktops. Absolutely FANTASTIC for desktops. But there is simply too much bloat if you want/need a simple server and had to choose just between the two. Gentoo, in my humble and honest opinion, fits this bill perfectly.
Let’s look at the real factors involved for the time it takes to compile something:
1. Available bandwidth to download source.
2. Available memory (with 512MB being my minimal requirement)
3. CPU speed.
With these minimum requirements, getting a Gentoo box up in a couple of hours is a nice thing, especially since patches and updates to the portage tree are already there – you can’t do that with a binary based distro and expect to have a fully updated system in a reasonable amount of time – you have to wait for packages to download, update, download and update again – a process that takes quite a while (read: up to a full work day) if the updater manages to work as expected.
The only thing I needed at this point in time was a simple MySQL server. After the base system was complete (which took me an hour to do), it took me an additional hour to get MySQL installed. And it was the most recent source code available.
Choice is an awesome thing. Choice gives me what I need. Unfortunately, I can’t say that for a certain Redmond-based company or a binary-based Linux distro, who try to give me what THEY think I need for a server.
Why not Linux from scratch ? You control everyting in standard way (don’t need to study portage), and give knowledge to do it with other distros (try to do that with portage)
First time post, hello you all
I’m a little annoyed by the fact CRUX never get mentioned in articles like this and nothing against Gentoo ( well, I personally don’t like it, but I can imagine people who do) or Lunar of Sourcemage ( really great systems) but I’m just a little fed up that the article is called “Source Distributions: Their Own Worst Enemies?” while the author only (as far as I can see it in his article) has experiences with Gentoo:
“And the biggest of the big — it will break. The ability to upgrade individual packages will eventually break another package, even in the ’stable’ tree” – uuh, depends on who creates the packages, not on the distro.
For people who are interested in a KISS sourcebased distro, I could really recommend CRUX: if you like more advanced packagemanagers: give Lunar Linux or SourceMage GNU/Linux a try, Gentoo isn’t the only sourcebased distro…
Edited 2006-09-23 03:29
I have tried gentoo because I heard so many good things about it. I have always been a SUSE boy so I was prejudiced. Well I have tried to install it. It was like running a marathon to get the thing installed. Boy can’t those idiots not supply an installer? Man chrooting into some unpacked tar-file and using grub manually what is this the stone-age? Than I had a running base system and tried emerge kde to get my favorite desktop. It went on compiling for 12 hours. 12 Hours!!!!!!!! I have a fast machine can’t they just precompile for every architecture, there are a lot of architectures but not that many that everbody has to do it’s own compiling. It is a waste of cpu and a waste of my time. After succesfully compiling the kde thing I noticed that gentoo used over 4 GB of space on my harddisk. Which is twice as much as my standard suse install and the suse install includes a lot of packages out of the box. My ati-radeon m10 card was not supported by gentoo (i use a laptop) but it was supported by suse. All in all I went back to SUSE being totally disappointed by gentoo.
Edited 2006-09-23 08:16
And among all the good things that you heard about Gentoo didn’t you hear also that Gentoo is not meant for people without patience or with no free time?
I’ve been a Gentoo user for almost two years and I know perfectly well why Gentoo is not for everyone. In fact, as Linux gets more users it will be a distribution for a minority, and myself I’m running Suse right now. But… does that make Gentoo suck? Lord, no. I wish Suse was as good at its game as Gentoo is in its own game.
Edited 2006-09-23 08:55
Boy can’t those idiots not supply an installer? Man chrooting into some unpacked tar-file and using grub manually what is this the stone-age?
Actually there is an installer, but if you’re like me you don’t use it because I like to have complete control over my system, which is kind of what Gentoo is all about.
Than I had a running base system and tried emerge kde to get my favorite desktop. It went on compiling for 12 hours. 12 Hours!!!!!!!! I have a fast machine can’t they just precompile for every architecture, there are a lot of architectures but not that many that everbody has to do it’s own compiling. It is a waste of cpu and a waste of my time.
Uhhhh…Gentoo is a source-based distro. What did you expect. If anything you should blame yourself for not reading about Gentoo first. Precompiling all packages for every architecture on Gentoo is a waste of developers’ time. Gentoo is source-based, so how would it benefit Gentoo to take developer resources away to build thousands of packages for a multitude of architectures?
After succesfully compiling the kde thing I noticed that gentoo used over 4 GB of space on my harddisk. Which is twice as much as my standard suse install and the suse install includes a lot of packages out of the box.
Clean your temporary files out. Clean out your distfiles. Gentoo doesn’t have to be that big. You just have to know what is going on.
My ati-radeon m10 card was not supported by gentoo (i use a laptop) but it was supported by suse. All in all I went back to SUSE being totally disappointed by gentoo.
That’s not true. You probably just didn’t install the correct drivers.
Well, I have problems from time to time, but it’s hardly a weekly thing. Gentoo occasionally does break, even if you follow the instructions.
I love it anyway.
On average 1/2 of 1% of stable packages are broken for me (based on my last two emerge –update –deep world on two machines following the gcc 3.4.6->4.1.1 change). That’s based on two samples – one of 400+ installed packages, and one on 700+ installed packages. That’s the reality for me, and the failure rate has been fairly consistent the past several years. And as was indicated in this discussion, that’s generally not a matter of things breaking universally, but breaking in certain system conditions or situations.
I liked this article – it about sums up my own experience. I find Gentoo occasionally frustrating but it’s one of those things where when you really love something, it’s worth the pain.
4 years on a Gentoo desktop, and I’ve tried plenty of others on my secondary and tertiary machines. I haven’t found anything yet which tempted me to switch.
For now, though, it feels like switching to anything else would be a step backward. It helps if you have a fast machine and a fast internet connection. I know from experience that compiling on a slow machine and using a regular modem can be a drag. If things break, they may do that in the middle of the night while you’re sleeping, and you lose the rest of the night as a result (on fast machines, you can do it during the day, and you’ll know if something breaks).
What is happening, though, is machines are getting faster and faster. It’s practical for me to sit here waiting while the system compiles even the larger packages. Gentoo is going to be easier and more pleasant to run as people upgrade to the newest dual core systems and lots of RAM.
Look, Gentoo isn’t perfect, and it isn’t for everyone. For whatever reason, there’s been some bad press about it lately, but as a user, I’ve not noticed anything significantly different.
In particular, in the past few years, we’ve had:
* Upgrade from devfs to udev – this is a pretty major “infrastructure” upgrade but there were instructions on what to do, and I can’t speak about anyone else’s experience, but it did work in my case.
* gcc version upgrade to 4.1.1 – again, clear, easy, and quick instructions are available for this. Worked fine on both of my systems. On the system I’m typing on now, 4 out of 700+ packages refused to compile with the new version.
* Upgrade to modular X. Again, upgrade guide posted and pretty basic to follow. In my case, the few blockers I got were easily solved. Fairly trivial update.
These three things have caused pain for a lot of people because users weren’t aware that there were additional upgrade processes for these, rather than the usual emerge –update -deep world (Not that all problems were a result of this I’m sure, but many were).
Maintaining Gentoo on a weekly basis is fairly trivial and becomes a mindless habit, almost. This process works so well that people forget to stop to question whether there might occasionally be other steps involved (usually there isn’t.) They don’t think to look for upgrade guides, for instance. These are announced in various places but a lot of people don’t read the #gentoo topic on freenode, or the newsletter, or what have you. It’s a rotten pain in the nose when things break as a result of using the routine (but inappropriate for a few specific things like gcc) upgrade process, but it says a lot for how trivial keeping Gentoo up to date is that people don’t even think to check.
So, then, this is the stuff I’ve learned that works well for me:
* Always stay in touch with the Gentoo community, and keep abreast of major issues. The Gentoo Weekly News, Documentation page, and #gentoo topic on irc.freenode.net are just a few ways to do that. You don’t have to read hours and hours of stuff weekly; just check in occasionally. If you can’t or don’t want to do this, you might want to consider another distribution that does full version upgrades every X months instead. Fair enough.
* Always etc-update or use dispatch-conf whenever portage tells you something needs updating. If you nip these in the bud each and every time you update, you will have less problems, and it’s much easier to deal with a handful of files at a time rather than 50 or 60 if you let these updates pile up.
Probably 90% of the time, changes to config files are trivial and don’t need to be merged or are auto-merged as “trivial” changes. Keep regular backups of your etc directory in case you accidentally overwrite, say, your /etc/fstab file.
* Personally I recommend updating your system at least every 2-3 weeks. I do it once a week. With compiling, the process takes about an hour, but the time I spend at the keyboard typing commands and dealing with config file changes is about 5 to 10 minutes a week.
Many people report that leaving your system to get out of date over long periods increases your chance of trouble. Also, it is best to do this manually: do a –pretend or -a first and *really* pay attention to what’s going on, any blockers, etc. Some people run emerge –update –deep world in a cronjob.
I don’t recommend this (though –syncing this way is fine).
Always pay attention to what you’re doing. Portage rocks and generally does the right thing…but I wouldn’t count on this as a law of physics. In most cases, packages which require extra steps will print a notice when the ebuild script is running. Pay attention. If something raises a question or doesn’t look right, abort and search the forums. The longer you run Gentoo, the more you’ll get an almost intuitive sense of when you’d better stop, look, and listen before proceeding.
* Ask questions! People might get snarky if you’re all frustrated because you tried to do a major gcc version upgrade, and like, opened a wormhole destroying all of Belgium.
But if you pop onto the forums or IRC and ask, “Is there a guide or special process for gcc?” people are usually happy to point you in the right direction. Use common sense as to when you should pause and consider that a simple emerge command might not do everything that needs to be done. So far, it’s mostly been major stuff such as the three things I mentioned.
* Occasionally, things break. Hopefully rarely, or you’ll be one of these magical leprachauns who never have any problems ever on their Linux systems. Deal with problems in a sane way – define the problem properly, then slowly untangle the knot – don’t wildly pull at the ends of the string hoping things will just untangle.
* Before you do anything, check bugs.gentoo.org to make sure this isn’t a known issue, and then search the forums. Most of the time, someone has had the same problem you have, and a solution might be documented (as well as the cause)
Always check both before rending your clothes, denying the existence of God, and dousing yourself in yak’s blood as a sacrifice to Moloch.
Back up your configuration files REGULARLY. I run a nightly cronjob which tars the /etc dir up and scps it to another machine. This does the job.
Lastly, maybe a source-based distro just isn’t appropriate for you; it doesn’t reflect on your character or even your computer skills. Don’t let anyone make you feel bad because Gentoo is just “too much” of a certain thing for your tastes. That being said, if you’re new, give yourself some time to get fully acclimated to the environment and philosophy of the distribution. You might learn to love it. I did.
Can anything but a source distribution keep up with the pace of the evolving landscape that is linux today on the broad range of platforms commonly being used with any kind of smooth upgrade path forward? I’d have to doubt it and the efforts toward that to date speak for themselves. To use a source distro is like shopping at every manufacturing outlet store on earth at once as compared to only shopping at the 7/11 mom and pop on the corner.
Edited 2006-09-23 17:13
More than 2 years ago I did a stage3 install of Gentoo64 on my dual Opteron. After emerging my favourite cron/log and other system services I needed, I ran “emerge kde”. I am still running the same install 2 years later as my main desktop. Occasionally when bored or need to install an app that needs newer libraries I will upgrade parts of the system I need. 2 Years! Show me another Linux desktop user still using the same distro they installed 2 years ago and have slowely updated on the way. Gentoo does it easy. If you can’t handle it use something else and winge elsewhere.
I wanted to add that for people considering Gentoo that much of the time I’ve spent with Gentoo has been spent learning about Linux in general, from a user’s perspective. I’m hardly an expert, but I will say that most of the things I learned – whether through fiddling or by solving problems, has been largely applicable to Linux as a whole. That is to say, you will learn a fair amount of things which are applicable to any other distribution that you use.
So if learning curve is one thing keeping you from Gentoo, ask yourself how interested you are in Linux as a whole, in terms of learning about it.
There seem to be an increasing number of people who don’t have much interest in their OS as much as, they just want to do things with it and not be bothered, say, to compile their own kernels or edit configuration files – at *all*.
I don’t know that the extra effort – and this is just my personal opinion – would be worth it, if they’re already fairly happy with something else.
I mention this just because the actual install itself is fairly involved – you’re compiling a kernel (as I mentioned), making a chrooted environment, installing and editing the configuration file of your bootloader (usually GRUB) in a text editor, and of course, compiling every bit of software on your system. You’re writing your own fstab file out in a text editor as well.
For many of these kinds of things, there is a shortcut, or a simpler route, but it gives you a less customized, less “Gentoo-y” system – at least, that’s how I regard it.
You can install precompiled binaries for what Gentoo refers to as its GRP (General Reference Platform). You can use genkernel to “generate” a kernel configuration for you based on, mainly, hardware autodetection.
But it seems to me personally that Gentoo’s primary virtues are in the DIY arena. It’s not that it’s super hard to install and customize Gentoo. It’s just that it takes a little more time and reading. However, and to me this is Gentoo’s primary virtue – it allows you to do these things by providing some amazingly snappy, simple-to-use tools that anyone reading this could learn to use in just a few minutes. Want to make the ntp (time) daemon run at startup?
rc-update add ntpd default.
It’s really not much more difficult than a GUI you might have used to manage this. Another example is updating all of your packages to the latest versions: emerge –update world (or –update –deep world). That’s it. apt-get fans will note that this is approximately the same sort of interface they’re used to.
So when you hear “compiling a whole buttload of packages manually”, they mean issuing a command like emerge –update world and then walking away, going to sleep, going to work, or backgrounding this task and continuing to use your machine while it compiles in the background. A setting in a config file allows you set portage “niceness” – setting this high allows your desktop, even on older systems, to continue being quite responsive so you can work or game or whatever while portage works.
Side note: I advocate of using screen to run large updates in – it makes the emerge session, which may be running for a long time, to be equally accessible by consoles, ssh, or Xterms. I found I often accidentally killed these by closing down X and flushing the xterm sessions absent-mindedly while emerge was running.
This is why it’s a bit of a misconception that Gentoo is some kind of geek-only distro. The secret to Gentoo is it allows you to do some useful under-the-hood things with incredibly easy-to-use tools, handholding through what I personally find to be concise, well-written documentation, and an extensive online support community.
You will spend more time learning about your system, probably, but a lot of what you learn will be transportable to other systems and useful for the future. It’s sort of a boot camp in basic Linux user stuff, just a few levels deeper than what you’d normally get as a user in a distro like Mandriva.
If you have never compiled a kernel before, the Gentoo install will guide you through it (unless you decide to use genkernel). Once you’ve done it once, you’ll be able to do it on any other Linux distribution – you may even want to. The thought of not compiling my own kernel on any distribution I use is now an almost unbearable proposition (All of my machines, 3 distros total, have a custom kernel). None of these things, by the way, are anywhere as difficult or time consuming as some people imagine.
A final benefit is that you will be probably be in a position to appreciate FreeBSD, should you ever give that a shot – well, that is, if your experience is like mine.
FreeBSD and Gentoo remind me of each other from a user’s perspective.
I can’t be sure but I’m fairly certain that Gentoo users would be likely to adapt to FreeBSD quicker than users of any non-source distro I’ve seen (as to other source-based distros I can’t comment; I’ve never used any other source-based distro).
Quite obviously, you can do anything Gentoo does in any other distro – Linux is Linux, but this may not be the *expected* typical user behavior, as it is in Gentoo.
Gentoo is not Linux from Scratch, but it may take you a few levels deeper than the non-source distro you’re using now. If you’re like me, you’ll appreciate this.
Also – slightly off the subject – I don’t care what anyone says, I still like Debian Unstable too and consider it a viable alternative if you really don’t want a source-based distribution.