I fully agree that working with Gentoo is no fun at all, as Julian points out in his post
My impression, when I tried Gentoo for the first (and last) time is the same. Thats not because it is made bad. In fact things in Gentoo aren't made that bad. There is good documentation, portage is quiet nice (with its USE flags and alike), but in the end I'm not really satisfied.
After all Gentoo uses a copied concept, which itself is good. The concept is derived from the BSD-world and is just the concept of source-based systems. This concept has its advantages over binary distributions, because it allows a flexibility that is not really possible with a binary distribution. That really is the only appreciable advantage of these systems. Users of these systems (including FreeBSD and alike) tend to give other arguments as well: Newest Software, Highest Performance and even Security is a point they give.
Usually the "newest software" argument is brought up with a rant against Debian. I keep hearing statements like "Debian Etch is totally outdated and Testing is broken". That statement in itself is just wrong, but the important thing is: What do you need such new software for? On a server its preferrable not to upgrade to each and every major release, for certain reasons. Its also a bad thing to build on production systems, so you need to take further measures to administer systems like that. On a desktop I can understand the logic, but then again: No. Why would I want a system I have to compile from scratch and on each upgrade (wasting a lot of time, power etc.) which changes often?
The performance argument is the dumbest of all. Binary distributions usually build binaries for various platforms. And while they can't be optimized for a very specific processor or a very specific feature set (=reduces binary size) they usually perform well enough that a difference between the self-compiled Gentoo system and a foreign-compiled Debian is not noticed by the user and sometimes not even measurable. So the time you save during the lifetime of your builds (which is not very long on a Desktop, is it?) because of the enhanced performance is used up a hundred times, by the time you waste for compiling the whole software only for yourself. Even if some of the software performs noticable better (e.g. video processing is said to benefit a lot from an optimized platform).
What about the security argument? It has been said, that you get your updates earlier then users of binary distributions. That is partly true, because in a binary distribution the update needs to be built first, before it gets to the end user (however, everything before is the same for a binary or a source distribution). But do you really follow security issues that close, that you benefit a lot from this? If you do, indeed, you save some hours. If (and only if) both distributions have a solution for a security issue at the same time.
Anyway. The flexibility argument can't get discussed away. Its the argument that makes Ports in BSD-systems attractive. You can have exactly the features you want, with the build-time options you want. In a comfortable manner. That is in contrast to binary distributions where we package developers need to guess which features might be needed (/wanted) by the users with mixed results. Good if they can decide for themselves. Still, I don't see the reason for compiling the whole system, if I need one or two customized components. So I go with Debian and customize packages if I really need/want to. The only difference is that it takes a lot of more effort.
I would love to see something done in Debian to reach a compromise. Making rebuilding of packages with different options very comfortable. We have DEB_BUILD_OPTIONS, maybe we should enhance it to support a lot more options then noopt,nostrip or nodoc. Possibly it would be a good thing to standardize on some use flags (e.g. [no]ssl, [no]ldap, etc.) and support them in the debian/rules file. This way building customized packages would be as easy as setting sensible DEB_BUILD_OPTIONS and run dpkg-buildpackage on the source. This could be eased further by providing a tool to download the source and build a given package (IIRC such a tool already exists). How does that sound?
Monday, October 13, 2008
Subscribe to:
Post Comments (Atom)
8 comments:
Debian is destroying earth because they don't optimize for my cpu(s). Every x cycles a few get wasted because debian is optimized for i-x-86 and not for my 11 generations newer cpu.
Seriously, how would you defend your point about speed when comparing in-order and out-of-order cpus? There can definately be a difference in speed there.
The thing that attracts me about linux is that I have freedom of choice. I can choose distributions, package managers, desktop environments, music players, etc., etc.. Gentoo gives a user more options than debian, to me that means more freedom. I don't care you think it's a waste of time, I don't care if you think I'm destroying earth by using more power than needed, I care that it's my choice and not yours. I'm not criticizing your choice for debian either, I do think debian has something to it too, but I also think (and have discussed and agreed upon with my coworkers) that when I would run debian I'd have to create packages for probably a dozen of apps for about each specific server.
Michael,
as your first statement is not meant to be serious (well I hope so) it won't get attention by me.
I didn't say that it would be impossible, that there are cases, where a built optimized for a given system gives you real speed enhancement (because what you save is more as you spent for compiling, which is the minimum requirement for such optimizations to be useful). But the point is that in /most cases/ this is /not true/ and so the compiling is just a waste of time and of ressources.
Michael, I did not deny you your freedom. I didn't choose the title, btw, it was a "Re: ", because someone else had an interesting post that brought me to write this one. I just communicated my opinion. And the "gives a user more options" thing is exactly what commended about Gentoo. I'm just not sure about the price of this. While I myself (from a user point of view) appreciate the freedom to choice very much, I also see a sense (for me) to minimize the efforts I spend (or let my CPUs spend) to what is /needed/, not to what is /possible/.
I do not criticize your choice for Gentoo. What I criticize is the system in itself. Because it wastes a lot of ressource, for *little* benefit. I also criticize the arguments and the arrogance used when argumenting for it, which is full of ignorance for the rough edges. But after all I do see advantages from this concept and while I personally prefer binary distributions I would like to see a part of the other world to be integrated in Debian.
"But I also think (and have discussed and agreed upon with my coworkers) that when I would run debian I'd have to create packages for probably a dozen of apps for about each specific server."
I don't exactly understand what you mean by that. Is it software that is not in the Debian repository? Is it because you /need/ specific package configurations that are not the defaults for binary packages?
If you want to take a look at a nice approach of a workflow allowing a binary distro user to easily configure/build a package that will fit in the distro's package management system, may I suggest you take a look at Arch Linux build system, dubbed ABS, where the thing is basically a 5 minute process. maximum. two really.
Since I used it, everything else source-related just seems to be needlessly complex and IOW just a PITA (grr MacPorts).
Certainly not to copy verbatim in debian context, but worth a look if you want to improve the matter of custom-package-from-source building.
>>This way building customized packages would be as easy as setting sensible DEB_BUILD_OPTIONS and run dpkg-buildpackage on the source.
I would love that.
"On a desktop I can understand the logic, but then again: No. Why would I want a system I have to compile from scratch and on each upgrade (wasting a lot of time, power etc.) which changes often?"
ccache to the rescue! ccache saves compiler caches from the previous install, so you only need to compile what has actually changed between two versions of a program. And with an Intel Core Duo processor you can cut the remaining compile time to half.
An additional benefit of a source-based distro is that it's much easier to install programs that haven't yet been packaged for your distro. Almost every free software program out there is available as a source tarball. But if you want to compile programs from source in Debian, you need to spend extra time hunting for a large number of -dev packages to get the necessary headers and development libraries that are needed for compiling the source tarball. In a source-based distro you most likely already have those headers and development libraries installed.
I have never really tried Gentoo but I use Source Mage GNU/Linux, which is kinda like Linux From Scratch with an intuitive package manager that installs programs from source tarballs and resolves dependencies automagically. I also use Debian GNU/Linux and I like both distros a lot, although (or, rather, because) they have different approach to installing programs.
Oh, about Gentoo destroying earth... Well, that's probably a more general problem that concerns all computer users, not just users of one particular distro. And any computer-related problem is a technical problem that has a technical solution -- someone just needs to find that solution. Still, I tend to think there are even bigger problems in our world than computers.
This isn't exactly ontopic... but I need updated software because some of the old ones work with flaws (if they work at all!).
Examples: network-manager, eclipse, xmonad, ghc
@ anonymous
This is a problem that is solved by backports. If Ports always contains newer software as in a stable release this may also solve the problem. But then I ask myself how to retain stable with the software that is not meant to be bleeding edge?
You probably want to check apt-build
(http://packages.debian.org/sid/apt-build)
Post a Comment