Gentoo Linux Musings
ChaserPnk writes "Gentoo has been in the news recently. First with the news that Daniel Robbins leaving Gentoo and then with Gentoo Linux 2004.1 being recently released. Have you ever wondered how Gentoo got started? An article at IBM DeveloperWorks explains how. Get to know the history of Gentoo."
darthcamaro wrote in with a related story that suggests that Gentoo is preparing to change directions soon: "Is Gentoo gearing up to be the third major enterprise distro? That's what an article running on internetnews.com points to. They talked to the head of Gentoo's enterprise efforts. For those that think that Gentoo Enterprise is far off, Gentoo's guy figures if they had the cash they'd be up and running in 6 months."
redhat/fedora isnt difficult to upgrade to a newer version remotely. there is this great tool called APT that was started by the debian project...
i have used apt to upgrade from a redhat9 box to a fedora core box _while i was still using the system_
http://porthole.sourceforge.net/
http://www.nongnu.org/kportage/
Enterprise, not just commercial. So that would be SuSE and Red Hat.
"Sic Semper Tyrannosaurus Rex."
If I understand their strategy correctly, the idea is to keep a 'stable' CVS tag in the manner of FreeBSD, and to distribute that to the enterprise portage tree. The same CVS repository would still be used for all the files, it would just be pointing at a different tag. And as long as it's using Portage, it's Gentoo. :-)
Karma: It's all a bunch of tree-huggin' hippy crap!
Are you going to and from the University or are you just coming home? If you can get on and off that connection you can do an emerge -f to download the packages at the university and continue the compile at home.
/usr/portage/distfiles, all you really have to do is emerge sync once a day (equiv of apt-get update) and then emerging new packages. That's also going to take some time to download new files if they are required but you can do other things while portage is doing its thing. I generally go do emerge whatever and then go do other things. Some of those packages can be really big to pull down over dialup but then again, if you've downloaded Fedora iso, you've probably found a way to deal with large downloads somehow.
The binary packages can also be out of date fairly fast. Gentoo is going to take some bandwidth to get the source files for building intially but assuming you leave them in
We've been using Gentoo exclusively on both servers and workstations for well over a year now. The reason we chose Gentoo?
-- Stability
-- Scalability
-- Flexibility
-- Customizability
-- Support
We had a mixed RedHat/Mandrake shop before that. From our point of view, we hope other businesses share your opinion. It gives us the competitive advantage.
-- Stu
/. ID under 2,000. I feel old now.
You're kidding right? You know you can do this in every other distro too.
I just did this using the gentoo CDs.
I did a netless install. I install the basics from packages on the CD (KDE, compilers, etc). I got back to work (I just did't have to time to sit and wait).
While working I did "emerge sync; emerge -fu world" which updated the versions and downloaded all the source code.
Then at the end of the work day I logged out (just in case upgrading KDE in-place would screw it up), and did "emerge -u world" at the console.
Voila, my gentoo system was transmogrified with the latest updates.
Pretty cool and I hope they explore this further (i.e., let's have "netless install", "net with precompiled binaries", and "net from scratch").
You must try distcc - it has saved me tons of time!
www.distcc.org - they even offer a link to Gentoo.org for information on how to install and configure. It is so simple I am still amazed that more people are not using it.
distcc offloads compiler jobs to other machines over the network. My PIII 700 laptop now has a little help - the Athlon XP2100 and the PIII 600 perform alot of the work now.
Another thing I use is ccache - I don't exactly know how it works, but it supposedly adds 20 -40% faster compile times.
I also read somewhere in the forums that it is possible to set up a server internal to compile the packages once for the target machines (if they are all the same) and then perform a binary install to each machine from there.
Use distcc to have all the machines compile the packages once; use the binary package emerge to install locally! *SWEET*
Good Luck!
Birukun (here and on the Gentoo forums)
Self Defense - A Human Right www.a-human-right.com
There is already a binary flag for emerge, emerge -k. Certain packages (large ones like GNOME, KDE, Evolution, Mozilla, etc... and their dependencies) are provided by what's called GRP (Gentoo Reference Platform). All you have to do is set your PKGDIR in /etc/make.conf to point to a directory where you have these prebuilt packages (which you download an .iso of off a Gentoo mirror), and you're set. Although emerge currently has the capability to fetch prebuilt packages from a mirror that provides them, there are no public mirrors which do so. If you had a bunch of computers that you wanted to run gentoo on though, you could set up an ftp site with prebuilt binaries, point emerge to the ftp, and use emerge -gK to automatically fetch/emerge the packages you want. Otherwise you have to do what I said before, which is to get an .iso with all those prebuilt packages, and simply mount it.
It's already there.
PKGDIR="path_to_packages" emerge --usepkg package_name, if you have a package of the same version a compile would merge.
Use --usepkgonly to force installation of an older version than a merge would install.
To create binary packages whenever you compile something, add "buildpkg" to your FEATURES= line in
So he'd use apt-build instead.
If Debian zealots rant and rave like children, Gentoo zealots assume that they're the only distro that can compile things from source.
Ummm. I stick the RH8 discs in a RH7 box and choose "upgrade". Or I use yum or apt and take it right to FC1 or rawhide.
the most common complain (and mistake) about gentoo is that it "takes forever compiling" etc etc yadda yadda....
:)
:) i would never, ever trade it for other distro....
this is BS....
first: I have like 20 servers running gentoo, the oldest of them is a pentium3-1ghz...
even on this machine mostly everything compiles just fine (doesn't take long).
2nd: for the things that WOULD take a lot to compile on this hardware, I can always resort to the binary packages (emerge -k)... kde/openoffice/gnome/etc gets installed in seconds....
3rd: most my servers don't need kde/X/gnome/etc...
4th: if there is a package i use often, and it's not avaliable as a precompiled package... i can just have emerge "create" one and store it on the network... if i do an emerge things get compiled from source... if I do emerge -k , the portage will first look into my packages dir to see if it finds a precompiled version, and if it does... use it...
5th: distcc is your friend... i have 5 xeons 3.06ghz on my distcc farm... talk about fast compiles
6th: gentoo rox
I for one, welcome our new hot grits... PROFIT!
Not that I don't love Gentoo or anything, but mind you, adds more than just an "extra few minutes" to the installation process. In all, the first couple of times I installed Gentoo on my laptop (stage 1 and then stage 2), it took nearly a week before I felt OK about disconnecting it from the Internet to take it with me anywhere.
See, portage has between 6000-8000 ebuilds in it. There are a few which don't really build anything and are lists of dependancies (see the 'kde' ebuild, it's essentially just an empty thing that requires kdelibs, kdebase, kdepim etc) However, dispite the few of these, almost all ebuilds are a whole program or library that stands on it's own. With debs or rpms, the little customization allowed by them is included in packages such as qt, qt-MySQL, qt-PostgreSQL, etc. With Gentoo there is one ebuild and there are USE flags (mysql, which can add dependencies on mysql to the qt ebuild, but doesn't add a whole extra package)
I guess I must be the exception to your uneducated theory because I'm doing just that.
Actually, that's not strictly true. Look for the symlink called /etc/make.profile and you will see that it is pointing to a 1.4 profile (probably /usr/portage/profiles/default-x86-1.4) unless you changed it. The default-x86-1.4 and default-x86-2004.0 profiles are almost identical, but not quite.
Of course these profiles may diverge more in the future.
The real "Libtards" are the Libertarians!
Is that really the point of Gentoo though? Gentoo is a META distro, NOT a full distro. If you read the handbook, there is a lot of emphesis on making Linux YOUR way. What's to stop an IT department from taking Gentoo as a basis, and implimenting it to the demands you specify? Gentoo already has a way to lighten the compile burden through distributed compiling, you can already set up your own portage system in a corperate style intranet for easy, fast access to packages, that, surprise surprise, can be hand picked by the head IT guy.
The bottom line is Gentoo is about CHOICE, thats why the things so damned hard to install for newbies, (even with the wonderful Gentoo Handbook).
For myself, I've tried other Linux distro's and have run into a lot of frustration when those distro's don't follow a regulated norm, (IE they liked to make up directories not specified in a program original make file, or other stupid things like that.) Gentoo is the closet you can come to a LFS (Linux From Scratch) system, except with Gentoo you have a way to deal with installed packages in a semi-organized fashion, (instead of having to remember every little tid bit about where every single file, etc is stored, so you can hunt it down to delete it so you can do that upgrade you want).
We have 3 packages. Which really only need a reboot generally on one (and 2 others in very specfic cases), not to mention: Gentoo has a concept of slots, and I am pretty sure that is used to allow multiple glibc versions to exist, so nothing stops working, just new things get built against the new library. In this case, it takes a bit of extra room, but what do you think the compat-* rpms do?
And lets face it, people are still running systems from before the current versions, so this has been handled already. Not to mention, generally there are more bleeding edge gentoo users than other distros, so bugs get found out fairly rapidly.
I've gone through several glibc and gcc upgrades on gentoo. Including the imfamous gcc 3.0 to 3.1 upgrade which wasn't fully binary compatible. Gentoo (and plenty of other distros) easily figure out the depedencies. Also Linux does not stop you from running two versions of glibc at once. So you don't have to migrate everything over at the same time unless you can't afford the RAM.
FreeBSD and NetBSD both cope with this as well. I'm sure Debian and SuSE do too.
“Common sense is not so common.” — Voltaire
Actually, the basic installation of Gentoo does this already... albeit with a minimal set of packages. During install, you copy a generic root filesystem to your hard drive, chroot into it, and start replacing the "stock" binaries with your own compiled binaries. That's where much of the waiting is (ie: compiling gcc [twice, I think]).
That's the case for the most basic install (stage 1). If you do a stage 3 install, you're closer to what the parent wants.
Then, if you go to the GRP releases (which I have not touched), you'll have all the major stuff already compiled: xfree, gcc, openoffice, etc.
One place that's dangerous to tread for Gentoo is to have many packages pre-installed. One of the driving philosophies is to know exactly what's installed on the system, and have nothing more.
IWARS.
People, in general, disappoint me. Politicians even more so.
There was Cowboy Neal at the wheel of a bus to never-ever land.
s Gentoo gearing up to be the third major enterprise distro?
Maybe after they update the install process. Some scripts, a GUI or even a text menu would go a long way towards making Gentoo a bigger player.
I have been using Linux for 6 years and Gentoo was a pain in the ass the first time I installed it.
Then again, so was Red Hat 4.x my first time installing...
LK
"Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
If you are having touble installing gentoo or does not understand the handbook manual on the oficial webpage of gentoo i recommend you to take a look at the anaconda-gentoo graphical installer that victor padra make just go to: http://gentoo.vidalinux.com/?q=node/view/35
So use the same
Then install the patched ebuild. I went from openssh-3.7.1_p2-r1 to openssh-3.7.1_p2-r2, rather than upgrading to openssh-3.8_p1
This a typical chicken & egg situation. Vendors are lazy and only support distributions with major market share, once gentoo becomes prevalant, they'll have to support it or lose customers.
So you would rather your applications run at sub-optimal speeds. You can compile on non-production servers & install prebuilt packages.
And if you, as an admin, take less than an hour to test your rpm (or whatever) software installation, on a mission-critical server, you're not doing your job. I will give you that it takes a long time to compile most things, but in my book, it's time well spent.
As much as I love Gentoo, this comparison makes no sense. When you're compiling, you're still not testing your software installation. You're sitting there waiting for the installation to complete. The Redhat administrator can install and test his installation before you're even done compiling.
And who said anything about a mission critical servers? Most people aren't running mission critical servers, especially Gentoo users. They're tend to be more desktop oriented, so you're talking about a niche market. If you're running a mission critical server, you always have a completely seperate box to test new software and there's usually no rush to upgrade, barring security updates. In fact, I'd venture to say you may be more vulnerable with Gentoo on a mission critical server because you need to take the time to compile, leaving your exploitable machine open while your Redhat friend took 15 seconds to install the latest security update.
All that said, I love Gentoo. I use it on my desktop. It's by far my favorite distro. I just realize that Gentoo's approach isn't flawless in itself, and that compiling everything doesn't always make sense. But for myself, I like it.
If you're doing this you probably have a test server which is identical to your production server (at least if you have a lot of servers which are essentially clones). In any case, that is the only way to be sure you won't have dependancy problems when you deploy to production.
In that case while you are doing the initial compile on your test server you do an emerge -b , so that it tar's your binary files. Then just distribute the tar to your production servers once you are happy and do an emerge -k. You can skip the distribution step if you have network mounted filesystems (which would probably be the case in an environment like this).
Gentoo supports binary packages as readily as source-based ones, just not by default...
I also read somewhere in the forums that it is possible to set up a server internal to compile the packages once for the target machines (if they are all the same) and then perform a binary install to each machine from there.
/mnt/portage/distfiles and change /etc/make.conf to point to this location. The first machine to download a missing package puts it in this folder, making it available to the rest.
/usr/portage/packages folder on the server to all machines with the same architecture (actually, it's more complicated since I have a mix of P3, P4, Athlon XP computers here.) You don't want a P4 putting optimised packages into /usr/portage/packages on the XP server.
/etc/make.conf points to the packages folder (/mount/pkgs) for each architecture, and I also have 'buildpackages' in the make options.
I share my distfiles folder over nfs, mount it on all remote machines as
Next, I shared the
All machines are running distcc. When I emerge -k whatever, it's either already there or built and put there for the next machine.
I'm sure this is documented somewhere, but I messed around until I got what I needed.
Hal Spacejock: Science Fiction with Nuts
No looking for parts here and there, just "emerge mplayer" and BAM! It's all there, working great with all the codecs in one shot.
Fast and clean. Gentoo rocks.
"And a voice was screaming: 'Holy Jesus! What are these goddamn animals?'" - HST
Why do so many of the gentoo-zealots only mention the speed optimizations as a reason to run gentoo? :). The speed improvement (that atleast I haven't noticed) is just a bonus.
The reason why *I* run gentoo is because it allows me to very easy customize the features of all packages. Also it very easy to apply custom patches and still have the package managed by portage (therefor knowing when there is a new version out
--
In soviet russia gentoo compiles you!
swaret --upgrade -a Swaret does everything apt does except hose your sytem.
GETPKG - Package Management for Slackware
I stopped using Gentoo because I kept getting dependency hell. I also found the time it took to install everything from source annoying.
:) (But no, in all seriousness, I left Gentoo and went to Slackware for the reasons mentioned and because of Eugina Loli-Q. of OSNews's review; it was pretty nice until I upgraded to Dropline Gnome 2.6. I'm now using ROX-Session and Zero-Install and OroboROX.)
I went to Slackware.
No, I'm not sure if I'm trolling either...
Look out!
Actually where gentoo is really nice is on the amd64 platform (few distros have stable amd64 ports). After installing in 64bit mode and playing around with the emul32 libraries I decided that I would rather just have a 32 bit environment embedded in my 64 bit one. There are some apps and plugins that are not ported to amd64 yet.
Since I already had 32 bit emulation enabled in the kernel I simply created a new dir in / , chrooted in 32bit mode and did a full install in the background. Since I am a developer I am able to test 32bit and 64 bit apps side by side without rebooting. I can also just boot the 32bit install if I want. I have even cross mounted my home directory so that I could use the same source tree. Having done the gentoo install only a handfull of times this was still easy.
I know people say they want a good installer but I see this experience as a primary example of why I dont want one. Some people like flexibility others need point and drool. Either is fine but both would be great.
Are you intolerant of intolerant people?