Matthew Caron (mattcaron) wrote in gentoo,
Matthew Caron
mattcaron
gentoo

Changes in Gentoo over the past 4 years...

Hey folks,

About 4 years ago, I ran Gentoo for about a year (initial install was 2004.0). I ended up moving away from it because:

(1) Compiling things from source takes forever
(2) Every week or so (or when I saw a security notice come out), I would run emerge -uDv world, and would spend 4 hours merging config files.

Eventually, I moved away from Gentoo because of this maintenance burden. However, some friends of mine have recently been poking it and have said that this has gotten a lot better.

Now, (1) I can see getting better, since laptops are now more powerful than desktops of 4 years ago, but have they really fixed (2)? If so, how? The simple solution is to include an unmaintained file which handles local config, but not all applications support this.

Thanks in advance.
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

  • 21 comments
I'll be perfectly honest, I left Gentoo for Arch earlier this year and for the most part haven't looked back. Install time is still high, maintenance is still a double mandated hobby in running it.
I haven't tried Arch. Recently, I've poked:
Vector
FC
FreeBSD
OpenBSD
PCBSD
Nexenta

How do you like Arch? What advantages does it offer over Ubuntu? How good is the selection of packages (remember, I'm used to Debian/Ubuntu and Gentoo here, which have pretty much everything).
The main advantages Arch offers are a BSD-style init system and it's package manager pacman. Configuration has to be done manually for the most part, much like Gentoo, but the defaults tend to be sane and straightforward for just about everything. Pacman is extremely fast and does things nicely. New configs are places in with a .pacnew extension, configs that belong to packages that are removed get a .pacsave appended to them. The Arch Build System also lets you optimize or customize packages individually should you desire.

Package selection is an awkward point for it. The main repositories cover all of the basics, but the selection pales in comparison to Ubuntu or Gentoo. However there is a community repository that let's your build your own packages and fills in most gaps you could think of in the main repository. On top of that, user packages that get regular votes from the community get audited and moved into the main repositories in time.
I just tried Arch last weekend, wow, it is amazing.

For me, compiling apps are no longer an issue with the latest GCC. You can now get a full system running including KDE and your favorite apps in less than 12 hours. With bandwidth being so slow here in Vietnam sometimes, it can take up to 12 hours to update a system with FC, openSUSE or Linux Mint.

Right now I think Gentoo needs to focus more on stability and figure a way to deal with all the reverse dependencies. Last Saturday, revdep-rebuild needed to recompile 40 KDE apps for just a lousy 2 meg of libraries update. I think Portage really needs to be more like FreeBSD Ports in this respect.

By the way, if you like FreeBSD, you will like Arch. Arch copied a lot from the BSDs. I love that I can find everything in /etc/rc.conf and /etc/inittab :-)

On a positive note, Portage 2 is much better and faster. It is easier to install Gentoo now as well.
I just tried Arch last weekend, wow, it is amazing.

How so? I'm interested to know other people's impressions on it.

Last Saturday, revdep-rebuild needed to recompile 40 KDE apps for just a lousy 2 meg of libraries update.

Well, if they are core libraries which are used all over the place, I could see that happening.

By the way, if you like FreeBSD

Actually, my main issue with the BSD-en is the use of BSD tools (ls, cp, ps, etc.). I like the GNU versions better. But, aside from that, I do like them well enough.
Well, for one, it takes 19 seconds to boot up from grub to gdm on runlevel 5. That is a huge increase over Gentoo believe it or not. That was the first thing I noticed.

pacman is a good package management system. For me the only problem I have is that there are no mirrors in Asia (We will probably add one later here in Vietnam). pacman has a large collection of pre-compiled 686 packages. No more compiling :-) There is a large community as well that adds their own packages to the community repository.

Forum and wikis are, well, up to date. Gentoo Wiki, though not run by Gentoo, is in major need of updating. The Gentoo doc pages need updating as well.

More responsive community who seem to um, give a damn. In my short time on the forum, I never saw a RTFM comment, just a polite comment to look at a particular URI.

Many ex-Gentoo guys are there as well. You get Ubuntu converts as well. That is nice.

Lastly, the big reason Arch is on top of my list is that I finally got my 5.1 Creative Arts (ca0106) sound card to work on all 5 speakers. A feat that PC-BSD, Ubuntu, Linux Mint, etc., could not achieve. I was using my 5 speakers with my onboard intel (intel_hda) which is good not in surround sound. I am still amazed of the strange foot steps when I watched Battlestar Galactica on my computer the other day. Amazing.

Anyway, If I make it through the month with Arch, it will be a keeper for me.

If you still like Gentoo, then there is Sabayon for you. I really like that distro but in the end, I got the same reverse dependency issues. When Sabayon finishes with their package management system and moves away from Portage, it will be a major contender :-)
Thanks for this post - it was really good and addresses a lot of my questions. I will likely throw Arch on a test box when I next have a chance. It sounds like my way of doing things.

If you're liking the surround sound thing, try the movie "Strange Days". It's kind of a lame movie, but the stuff they do with POV and very immersive sound mixing is good.
I am having just a couple issues with Arch now. Pidgin and Skype crash occassionally. I notice that some AJAX functions with Wordpress freezes just briefly. I am attributing both to the open source nv driver. I will try the propriety later this week to see if it resolves anything.
What versions of Pidgin and FF are you using? I ask because the ones on Ubuntu 8.04 used Pidgin 2.4.1 and FF 3 Beta 5, and I have those problems there too. :-)
I am using Pidgin 2.4.1 and Firefox 2.0.0.14

I still think my open source nv drivers are the culprit but I will not check until after I finish working on my company's new website.
Things have improved a lot. Processors are faster and things break less. I'd been putting off updating my system for quite a while and as it happens, I finally got round to it yesterday. It took several hours to update 400 packages and I was able to keep using my system as normal for all of that time. I saved the beast till last and left OpenOffice building overnight. When I got up this morning, it had successfully built. It probably didn't even take all that long. Having a quad core obviously helps but even a dual core will make a huge difference.

As for config files, I totally know how you feel, I used to have nightmares about etc-config. Not anymore though. dispatch-conf has been around for some time now and it makes the whole process MUCH quicker by having a much nicer interface and not bothering you about files you don't care about.
My problem w/ etc-config was (for example)

- CUPS would be upgraded, and I'd need to modify the config file so my printers didn't get clobbered. In theory, the automagic merge works, but I can't say that I've ever trusted those.

- as above, but for SSH...

Same thing with everything else, actually.. bash, etc.
That's inevitable though on any distro though, isn't it? Unless the merge is done intelligently somehow but that isn't feasible for every config file out there.

In the case of CUPS, printers.conf isn't part of the installation so that wouldn't get clobbered. Sure, cupsd.conf would and there are usually a lot of differences because CUPS has crappy defaults but I've always been able to just "zap" (as dispatch-conf calls it) the new version of that particular file.

Most merges are trivial. I just hit l (left) or r (right) a couple of times and that's it. Not too painful. As well as not bothering you with files you haven't modified, dispatch-conf also doesn't bother you with files you have modified if the stock version of it still hasn't changed.
That's inevitable though on any distro though, isn't it?

True, but mitigated and thus able to be prepared for with one which has stable versions instead of a "rolling release".

One way around this is to segment configs into "maintainer" and "local" where maintainer includes local and never touches it.

In the case of CUPS, printers.conf isn't part of the installation so that wouldn't get clobbered.

Used to be.. or maybe it was something else.. :-)

but I've always been able to just "zap" (as dispatch-conf calls it) the new version of that particular file.

In which case you are not aware of and thus will not use any new options from the new version of the service. However, I guess this is more of an argument for point releases than anything else.
*puts non-confrontational hat on*

I looked at dispatch-conf a while back (six months? a year?), and couldn't see how it was much different from etc-update. It seemed to me to be (figuratively) a different front-end to etc-update.
It is a different and nicer front-end but it's the automerging of files you haven't modified, which is really what makes it stand out. etc-update doesn't do that. If you only tried dispatch-conf a couple of times then you won't have noticed this feature because it takes a while to build up a collection of files to compare against.

Anonymous

June 4 2008, 20:42:58 UTC 8 years ago

i'll have to admit -- i've been very frustrated with gentoo recently (and i've been running it for the last 4 years now, since the 2004.0 build), and i think it has to do with developers becoming more and more reliant on revdep-rebuild instead of managing dependencies properly. i can't tell you the number of times i've installed stuff and seen the giant 'run revdep-rebuild to fix broken deps!' message.

another one of my gripes is that the gentoo devs have been much more aggressive about pruning the repository, so a lot of times, i've been unable to rollback to a stable version of an application using portage because the package had already been pruned (ndiswrapper is a good example, anything over 1.45 locks my laptop) i believe this issue is being addressed by the gentoo community (at least i saw it mentioned on the gentoo monthly newsletter).
not to toot my own horn, but i wrote a tool for configuration maintenance that basically ended it as a problem for me:

cfgupdate.py

the basic idea is that merging a config file is ok, but the quantity of config files is not. 95% of them (for me) don't get modified. so... i made a tool that caches the size/md5 of the default config, so that once you update it can (safely) update any config that was previously using the default (on the assumption that if you trusted the developer's defaults before you will still trust them).

anyway there are a couple of other tools which are more widely-used, but use a similar strategy. the only real weakness of the approach is if you had hand-audited a default config and found it ok, but it was very particular. in this case adding a comment or something will communicate that it's not ok to "auto-update".

i think merging in general is a pretty bad strategy, so a combination of smart file updates + the usual eyeballing is good for me. the biggest problem with gentoo is that they still advocate etc-update, which is terrible to use and offers the temptation to "just update everything" which is almost always a bad idea.
I have been a long time user of gentoo. I have used it since 1.0rc3 days. For the most part I love it. But I always dreaded the days of huge world updates.

I noticed one of my biggest issues with updating is HOW is updated. Everyday I would run an `emerge -uvD world` and would upgrade away. Something would inevitably break. While I know it is fun to play with all of the leading/bleeding edge software, it takes a lot time to maintain all of that software and it's related configurations. It doesn't matter what OS/distro you are using, the more you update your system, the more you run the risk of instability. After the birth of my second child, I didn't have the time to be messing with all of these issues all of the time, especially for a hobby machine/network (I have gentoo on 5 machines). I then decide just to run glsa-check everyday and deal with security issues. After about a week, my machine became much more stable. For the most part there are just small update. There is the occasionally big update, but that is one of the tradeoffs you make with any source based distribution. There are a few things that the gentoo devs/maintainers need to work on

  1. Better reverse dependency rebuild/notification

  2. Longer retention time of older packages: One of the biggest things holding Gentoo out of mainstream business distributions is that the main portage tree is way to fast moving. I'm not talking about that the newest packages being available. That is one of the great things about Gentoo. The gentoo package maintainers are too quick to depreciate the packages. I know many a time I was forced to upgrade key packages before I was ready too. Openldap and apache come to mind. Personally, I think there should be two different trees. One a slower more stable tree, and a quicker moving tree like the current tree. Sort of like the three stages the debian has stable, unstable, test. Stable would be the new tree, unstable would be the current {arch} tree, and test would be the ~{arch} tree

Aye... Only picking up glsa-check notifications is a *very* low maintenance way to run Gentoo. : D I generally do an 'emerge --sync; glsa-check -l affected' 'revdep-rebuild' (if required) and an 'emerge -av world' daily. I don't modify *many* of my system-wide config files, so merging rarely takes more than two minutes.

WRT reverse dep notifications: what do you propose? Searching through the ewarns emitted at the end of the build operation is a little bit cumbersome, but I can't really think of any better way to do it in a non-ncurses CLI.
*puts on nit-picking hat*

Who says that the Gentoo devs *want* Gentoo in the "enterprise" space? ;)

However, having a tool that would save off the ebuilds/patches needed to replicate whatever you've installed on a system would be nice. *adds that to the to-do list*