We decided to give Gentoo GNU/Linux a try. We had tested a previous incarnation, but weren’t entirely happy. This time, though, we were impressed enough that Agatha is using it as her main workstation now.
For those of you unfamiar with Gentoo GNU/Linux, it is a source-based distribution. Sorcerer, and LFS are other examples. LFS is good, because you literally build your system from scratch and know what every option is. The LFS folks often solve the hairier compile problems we’ve had, even when running a non-LFS system. With Sorcerer, you would type “cast emacs” or somesuch to download the sources and compile automatically. With Gentoo, you type “emerge emacs”. Sorcerer, in our memory, was first, but things got weird with Kyle and some forks and stuff, and then Gentoo was the new King. None of the forks seemed to take off. All really tragic. BUT… Gentoo is very good. Source-based distributions have an advantage in that you can optimize the compile for your system. LFS has the additional advantage that you know *exactly* what your system is and how it works, but it can be tedious to cut and past the various configure options and patches.
We used the Stage 3 install available here. This has a full system compiled and ready to go, but optimized for a Pentium 3. True, we recompiled everything anyway, but at least this way we could do the recompile on another desktop and keep working in the mean time. One problem (BIG PROBLEM!) with this release is that the SGML stuff is screwed up. We couldn’t compile several packages because of this. The fix here works fine, though.
To keep your system up to date, run the following command to see what needs to be updated:
# emerge --update world --pretend These are the packages that I would merge, in order: Calculating world dependencies ...done! kde-base/arts-1.0.5a [1.0.4] kde-base/kdelibs-3.0.5a [3.0.4-r1] . . . kde-base/kdebase-3.0.5a-r1 [3.0.4-r3] kde-base/kdenetwork-3.0.5a [3.0.4-r1]
The –pretend option is wise to use, so you know just how long this update will take, and what files Gentoo will be touching. Run without –pretend to do the actual upgrade.
Now, we did use an optimized build, but we decided to rebuild all software with the following optimization in /etc/make.conf:
CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
At some point since this article, we changed this to:
CFLAGS = -march=pentium3 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer
This has been working very well for quite some time. Agatha doesn’t remember why -march NE -mcpu…
For more suggestions on the CFLAGS entry, see this site. After changing make.conf, we recompiled all of the software with:
# emerge -rsync # emerge -e world
This took a *long* time. The compile CFLAGS even worked with Open Office. Hopefully you have a really good connection to the Internet and a fast CPU. If you don’t, you should probably use a binary distribution like Red Hat or Debian.