Gentoo Linux
From Free net encyclopedia
{{Infobox_OS | name = Gentoo Linux | logo = Image:Glogo-small.png | developer = Gentoo Foundation | family = Linux | source_model = Open source | working_state = Current | latest_release_version = 2006.0 | latest_release_date = February 27, 2006 | kernel_type = Monolithic kernel | license = GPL | website = www.gentoo.org }}
Gentoo Linux is a Linux distribution named after the Gentoo Penguin. It is designed to be modular, portable, easy to maintain, flexible, and optimized for the user's machine. This is accomplished by building all tools and utilities from source code, although, for convenience, several large software packages are also available as precompiled binaries for various architectures. Gentoo achieves all this via the Portage system. Gentoo is also appreciated for its discussion forums and the large knowledge base they represent.
Contents |
History
Founder Daniel Robbins recalls the birth of the Gentoo Linux distribution in a three-part article series, Making the Distribution
On April 26 2004 Robbins stepped down as Chief Architect of the project, [1], and worked for Microsoft [2] where he described his position as "helping Microsoft to understand open source and community-based projects" until [3] January 16 2006. Before leaving the Gentoo team, he set up the non-profit Gentoo Foundation and transferred all copyrights and trademarks to it.
The initial board of trustees of the Gentoo Foundation was appointed by Robbins but on May 25, 2005, the first board of 13 trustees was elected. There is also a subsidiary 7 member Gentoo Council whose members "decide on global issues and policies". The current members were voted in on August 31, 2005 by the 148 active Gentoo developers.
Portability
Image:GentooFreeBSD-logo.svg Gentoo was originally designed for the x86 architecture, but it has been ported to many others due to the highly-portable nature of Linux, gcc, glibc and Portage. It currently runs on the x86, PowerPC, PowerPC 970, SPARC, AMD64, IA64, MIPS, DEC Alpha, PA-RISC, ARM, and zSeries/s390 architectures. Gentoo was the first distribution to offer a fully functional 64bit Linux computing environment (user space and the kernel) for the PowerPC 970 architecture.
There is also a "Gentoo for Mac OS X" project which allows Mac OS X users to use Gentoo's Portage to install packages, in a similar way to the one provided by Fink (although without having to rely on a chroot environment Template:Fact). Although still a work in progress, this project can coexist with Fink because it uses the same environment as Mac OS X instead of creating a new one.
Portability toward other operating systems, such as BSD-derived are under active development on Gentoo/ALT project. Gentoo/FreeBSD already have a working release, while Gentoo/NetBSD, Gentoo/OpenBSD and Gentoo/DragonFly are being developed. There is even a project to get Portage working on the Hurd although development is slow. Heavily involved with the Portability aspect of Gentoo was Pieter Van den Abeele, who joined Gentoo shortly after its conception founding the first Gentoo port, Gentoo PowerPC.
Portage
Template:Main Portage is similar to the *BSD package management system called ports; in fact it was originally designed with FreeBSD's ports in mind. Gentoo's Portage system works similarly to Debian's APT. Portage is written in the Python programming language, and is the main utility that defines Gentoo. Although the system itself is known as Portage, its features are actually invoked on the command line with the program 'emerge'.
USE flags
The Portage system offers the use of "USE flags," which allows users to indicate which software features they would like to include while building packages. For example, there is a USE flag to include DVD support, where available, in all packages that are compiled after the flag is enabled. The USE flags can affect which dependencies are built or what options are sent to the program when it is compiled. The specification of USE flags is the usual way to configure programs on Gentoo. For a list of available USE flags, see Gentoo Linux Use Variable Descriptions
Ebuilds
Template:Main Gentoo does not use binary packages as package management systems like RPM do, employing instead a format known as the ebuild. The main difference between RPM files and ebuilds is that RPMs are precompiled binaries, whereas ebuilds are bash-scripts with variables and functions which contain a description of the software, and instructions on how to obtain, configure, compile, and install it. There are nearly 25,000 ebuilds available, the majority of which are distributed by the Gentoo mirrors. New and updated ebuilds can be obtained by synchronizing the local ebuild repository with the mirrors. This is done by executing the command emerge --sync. Recently, Gentoo has begun providing pre-compiled binary packages for many common programs, especially those which are lengthy to compile, such as x.org and OpenOffice.org. These are still installed with emerge, just by appending a "-bin" to the package name to instead install the binary version.
Masking
Masking is how Gentoo determines which packages are suitable for a system. Ebuilds designed for different architectures or experimental software are usually masked in a way that will not allow a stable system to install them without proper user intervention.
Packages that generally just require some testing but will often work fine are said to be keyword masked (i.e. they are available for systems with an ACCEPT_KEYWORDS make.conf entry starting with the character ~, such as ~x86, ~amd64, ~ppc). The standard way to unmask an individual keyword masked package is by adding an entry to /etc/portage/package.keywords.
Packages with known problems or not considered mature enough to be candidates for stable are hard masked by one of the various package.mask files in /usr/portage/profiles, and such entries are generally accompanied by a comment from developers explaining the reason for the mask. The standard way to unmask a hard masked package is to add an entry to /etc/portage/package.unmask. This should be done entirely at one's own risk.
Init system
Gentoo's init system is another important feature of its system. It is similar to the System V init system that most Linux distributions use, but uses named run levels rather than numbered ones and dependency based scripts. It also includes a command called rc-update which manages runlevels. Users often comment that the Gentoo init system is one of their favorite features, second only to USE flags.
A faster init system known as initng is available and under active development on the Gentoo forums.
Logo & mascots
The official Gentoo logo is the stylized G. Unofficial mascots include Larry the cow and Knurt the flying saucer.
Installation
Gentoo may be installed in several ways. The most common way to install it is by using the Gentoo Live CD, but as with any Linux distribution, it can also be installed by most Live CDs, and even from existing Linux installations.
Installation is done by following the Gentoo Handbook. An automated installer program is under development and available for testing. Additionally, several other methods of installing Gentoo are listed in the Alternative Installation Method HOWTO, most of which are targeted at experienced users or users that can't boot from the gentoo live cd.
As of 2006.0 Gentoo have now released a GTK+ based installer to greatly simplify the process of installing a gentoo distribution from scratch. More advanced users will note that the new installer also brings back into common usage the stage 1 install.
Catalyst
Starting with version 2004.0, Gentoo introduced a tool called Catalyst, which is used to build all Gentoo releases and can be used to build one's own customized install media.
Stages
Traditionally installation could be started from one of three base stages:
- Stage 1: System must be bootstrapped and the base system must be compiled.
- Stage 2: System has already been bootstrapped, but the base system must be compiled.
- Stage 3: System has already been bootstrapped and the base system already compiled.
In November 2005 the installation documentation was changed to recommend only a stage 3 install, due to the support pressure from people having problems.
The result of a stage 2 installation is identical to that of a stage 1 installation only with fewer opportunities for user error. A stage 3 installation is nearly always identical to a stage 1 or 2 installation and the advised method now is to do a stage 3 installation and optionally recompile the system after the installation using custom compiler settings (CFLAGS/USE flags) to create a more optimized system (this typically is necessary anyway following a stage 1 or 2 installation). Much of the base system including GCC and glibc cannot be compiled with aggressive optimization and so their ebuilds filter CFLAGS substantially, making the rebuild no more optimized than the original stage 3 binaries.
Stage1 and Stage2 tarballs are however still available for the stubborn.
Version history
- 1.0, 2002 March 31
- 1.2, 2002 June
- 1.4 August 5, 2003 (GRP introduced)
- 1.4 maintenance release 1 September 11, 2003
- 2004.0 March 1, 2004 (versioning changed to four releases a year)
- 2004.1 April 28, 2004
- 2004.2 July 26, 2004
- 2004.3 November 15, 2004
- 2005.0 March 27, 2005 (versioning changed to semi-annual releases)
- 2005.1 August 8, 2005
- 2005.1 maintenance release 1 November 21, 2005
- 2006.0 February 27, 2006
Note that once Gentoo is installed, it becomes "versionless," that is, once an update is done, the system is the latest version. So, if the system was installed from a 2005.0 CD and 2005.1 was released, and the system was updated, then it is up to date. The versions are only to make new Gentoo installs up-to-date from the start.
Even though the versioning system changed to years, the numbering version system still continues. For example, /etc/gentoo-release might contain "Gentoo Base System version 1.6.13" (Modified Aug. 26, 2005).
Criticism
Gentoo is sometimes criticized for poor QA (though possibly this is an unavoidable consequence of focusing on having more "up-to-date" versions of software available), unstable "stable" branches and for having a closed "upper management elite".
Many of the difficulties experienced in past years from the "stable" branch have dissipated due to the addition of a separate "unstable" branch, and will most likely continue to improve with time and effort. However, Gentoo, having a bleeding edge repository of software, often relies on the "upstream"'s (i.e. original authors) QA process. This works well for highly-used software (such as Apache), but less so for little-used software.
Gentoo is also criticised for its long installation process, particularly stage 1 installation which sometimes takes days on older hardware. One of the other interesting debates commonly held in the Linux community is the binary versus source packaging, Gentoo using the latter by default. Proponents of source packages claim that binaries are slower and less customizable, while proponents of compiled package retort that some packages (especially very large ones such as X11 and OpenOffice.org) take hours to compile and are incompatible with the needs of many users who require quick software installation. Furthermore, some compile-time customizations might make packages less stable. Both systems have advantages and disadvantages.
In response to this criticism, Gentoo began offering precompiled binaries for various architectures of popular applications including KDE, GNOME, OpenOffice.org, Mozilla, Mozilla Firefox and others, and all the packages required to run them. These sets of packages are referred to as the Gentoo Reference Platform (GRP) and are updated with every new release of Gentoo.
Finally, the closed "upper management elite" accusation has dissipated since Daniel Robbins formed the not-for-profit organization known as the Gentoo Foundation. These criticisms are hotly debated between a vocal minority of users of community-based Linux Distributions.
Gentoo has been seen by some as a competitor of Debian. In particular, some Gentoo users have claimed they turned to Gentoo from Debian because of Debian's slow release cycle and the helpfulness of fellow users in the Gentoo forums, compared to the harsher treatment of new users in Debian mailing lists (see also RTFM).
Another criticism of the distribution, usually from people who do not use the distribution, is that it attracts "noobs" or "ricers", who both believe that source-based distributions provide excessive and unrealistic speed increase over binary distributions, such as Mandriva Linux or Debian Linux. A website, Funroll-Loops.org, was produced as a sharp satiric jab at the Gentoo Linux Community. While Funroll-Loops was mostly ignored by the Gentoo Community, which largely accepted it as a joke, some have actually taken it at face value and use it in serious arguments as a counter-claim for Gentoo's advantages. While Gentoo has been proven to be faster in some situations because of Prelink and the minimalism one can achieve through very selective software installation (which may prove difficult with some binary distributions), benchmark numbers show that building from source does not provide a dramatic advantage in terms of binary execution.
Gentoo based distributions
See also
Gentoo in the press
- E-Trade VP Talks Open Source January 26, 2006, eweek.com (Pages 3-5) E-Trade's Vice President of Architecture Lee Thompson talks about how he uses Gentoo.
External links
- Gentoo Linux
- Gentoo Linux philosophy
- Gentoo discussion forums
- A well-known dutch gentoo forum
- Gentoo Development Guide
- Gentoo-Portage - An online searchable version of the portage tree.
- Gentoo Wiki
- Gentoo Wiki: TIP Overlays - A list of several portage overlays.
- Gentoo user quotes - A critic cites Gentoo user quotes from Slashdot & the Gentoo Forums.
- Hardened Gentoo
- Gentoo Installer project
- Gentoo section of www.linuxhowtos.org Tutorials, Tips&Tricks and Howtos for Gentoo Linux, including search functions for the portage tree, bugzilla integration and newsfeeds for newest ebuilds
- Template:Distrowatch
Template:Linux-distroals:Gentoo Linux bs:Gentoo bg:Gentoo Linux ca:Gentoo cs:Gentoo Linux da:Gentoo de:Gentoo Linux et:Gentoo es:Gentoo Linux eu:Gentoo Linux fr:Gentoo ko:젠투 리눅스 hr:Gentoo id:Gentoo Linux it:Gentoo Linux he:ג'נטו לינוקס lt:Gentoo Linux hu:Gentoo nl:Gentoo Linux ja:Gentoo Linux no:Gentoo pl:Gentoo Linux pt:Gentoo Linux ru:Gentoo sk:Gentoo fi:Gentoo Linux sv:Gentoo Linux tr:Gentoo uk:Gentoo Linux zh:Gentoo Linux