(Text gratuitously copied from [wiki:WikiPedia/Gentoo_Linux Wikipedia entry] and format-broken for MoinMoin. And yes, ["IHateMoinMoin"].)
Gentoo Linux is a Linux distribution. It is designed to be modular, portable and optimized for the user's machine. This is accomplished by building all tools and utilities from source, although, for convenience, several large packages are also available as precompiled binaries for various computer architecture. Gentoo achieves all this via the Portage system.
Portage is similar to the Berkeley Software Distribution (BSD) package management system called ports; in fact it was originally designed with FreeBSD's ports in mind. Gentoo portage looks a bit like apt-get from Debian. 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'.
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. USE flags is the usual way of configuring programs on Gentoo, but the option to configure the traditional way, ./configure --with-feature, is still available.
Gentoo does not use traditional packaging systems like RPM, but a format known as ebuilds, which contains a description of the software and how to obtain, configure, compile and install it. There are thousands of ebuilds available, the majority of which are distributed by the Gentoo Mirrors. New and updated packages can be obtained by synchronizing the local ebuild repository with the mirrors. This is done by executing the command "emerge sync".
Masking is how Gentoo determines which packages are suitable for your 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 user intervention (e.g. adding a package to /etc/portage/package.keywords). Experimental packages are "Hard Masked". Installing "Hard Masked" ebuilds is risky and not recommended because they have known problems, while packages that are masked by keyword (e.g. they are available for systems with the ~x86 keyword, but not for systems with the "stable" x86 keyword) just need some testing, but possibly work just fine. The standard way to unmask a masked package is to copy its entry from /usr/portage/profiles/package.mask into /etc/portage/package.unmask.
Gentoo may be installed in several ways. The most common way to install it is by using the Gentoo Live CD, but it can also be installed by most other Linux Live CDs, and even from an existing Linux installation on another partition of the same hard drive. The machine must be prepared for installation by partitioning the hard disk and installing a base system corresponding to one of three stages. Starting from the first stage allows for more customization and optimization, and starting from the third stage allows for a quicker installation.
Installation is done in a chroot environment, and by using Gentoo's own Portage system to install critical packages for the new installation. Gentoo does not feature an installation program as in many other distributions; the user follows the steps described in the guide on the Gentoo website, and on the Gentoo Live CD. The full installation and usage guide can be viewed in the [http://www.gentoo.org/doc/en/handbook/index.xml Gentoo Handbook].
- Stage 1, Full Installation, where the 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.
One of the three stages is chosen as a tradeoff between customizability and install time. The default compiler in Gentoo is GCC. Compiler customizations are made in an environment variable called CFLAGS. The system then must be bootstrapped, which is done by compiling the compiler and libraries.
After the three stages, the system configuration must be written. Then, the user is free to install what they want; they can download binary packages from the Gentoo Reference Platform (GRP), as well as compile their own software.
The kernel must also be set up and installed. Gentoo does not have a precompiled kernel; instead it offers various kernel sources, many with patches. It can either be done by the traditional menuconfig utility included with Linux or with genkernel, a kernel compilation program.
After the kernel is installed, the system configuration files must be edited manually to fit the needs of the user. This includes the fstab, network configuration, and system customizations. Most important is the Gentoo-specific make.conf file in /etc/. It contains settings that control the compilation of the packages and is generally updated by the system administrator when the values need to be changed from their defaults. The make.conf file contains environment variables like $CFLAGS, $CHOST, $USE, $ACCEPT_KEYWORDS and many others. Review the make.conf manpage for a complete list of variables.
Once the kernel is installed, the bootloader must be installed so that the system can be loaded without the use of external bootable media.
Although not necessary for Gentoo to work, a few packages seperate from the base system are highly recommended: a system logger and filesystem tools. Gentoo provides several options for each tool, which the user can select based on their preferences and needs.
The final part of the installation involves creating user accounts and installing any precompiled packages the user wants. After this, the user can reboot the system. The system is now standalone, and does not need the live CD anymore. The installation is complete.
Starting with version 2004.0, Gentoo introduced a tool called [http://www.gentoo.org/proj/en/releng/catalyst/ Catalyst], which is used to build all Gentoo releases and can be used to build your own customized install media.
It is possible to create tarballs of packages for distribution to other machines. These binary packages, with a .tbz2 extension, consist of all files installed by the package and a metadata section that makes it possible to install them by using the -k or -K options to emerge. This is particularly useful in the case of a homogeneous computing environment, where packages may be used on many machines despite having been prepared on a specific one. Additionally, because they can be installed directly to the filesystem root without using Portage, they can be extremely useful for rescuing a broken system.
Gentoo was originally designed for the x86 architecture only, 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, HP/PA, ARM, and zSeries/s390 architectures. Gentoo was the first distribution to offer a fully operating 64bit Linux computing environment (user space and the kernel) for the PowerPC 970 architecture.
Gentoo's init system is another important feature of its system. It is similar to the System V init system that most Linux distributions used, but it uses named run levels rather than numbered ones, and dependency based scripts. It also includes a handy command called rc-update to manage runlevels.
Version 1.0 was the first major version of Gentoo. It was released on the 31 March 2002.
Version 1.2 was the second, released in June 2002.
In Gentoo Linux 1.4, the Gentoo Reference Platform (GRP) was introduced. It provides precompiled packages, and when combined with a stage 3, a user can have a fully working Gentoo system without the previous long install time.
In 2004, the versioning scheme changed to being year-based in the form of Year.Revision. For example, 2004.0 would be the first release of Gentoo in 2004 while 2005.3 would be the fourth revision of Gentoo in 2005.
The latest official version of Gentoo is Gentoo 2004.2. For more information, see [http://www.gentoo.org/proj/en/releng/release/2004.2/2004.2.xml the official Information Guide].
On Monday, 26 April 2004, Daniel Robbins, founder of Gentoo Linux, stepped down as Chief Architect of the project. Before leaving, he set up a non-profit foundation, known as the Gentoo Foundation, and transfered all the copyrights to it. The initial board of trustees was appointed by Robbins and elections were scheduled for the following year. The membership of the foundation was initially set to be open. Upon his resignation, an [http://slashdot.org/article.pl?sid=04/04/26/2259211 article] was posted to Slashdot.
Criticisms of Gentoo users
Many of the critics of Gentoo are quite critical of Gentoo users who attempt to make the transition from the traditional role of a user to the role of a System Administrator (with varying degrees of success), and of users who are new to UNIX-like systems. Many of these users have difficulty understanding the jargon and reasoning for proper system provisioning, tuning and maintenance. Some of these users may have been dissuaded from pursuing other, more "technical" distributions due to harsh treatment of newbie users by members of the other distributions' user community, but still desired to learn more about the infrastructure of a Linux installation and found a more welcoming environment in Gentoo's extensive, respectful and newbie-friendly user base, well-maintained documentation and forums. However, some of these users are also attracted to Gentoo because they've heard that Gentoo is the "best" or most "elite" distribution to use. In reality, there is no one "best" Linux distribution (certainly no "elite" one), only the most appropriate based upon the user and the purpose of the installation.
Some typical criticisms include:
- Dizzying array of USE flags, causing new users to create highly broken systems
- Endless gcc CFLAG tweaking creates systems that are slower than expected
- Lack of understanding of gcc and its options cause hard-to-find issues in new users' systems
- Lack of understanding of Linux Kernel building causes hard-to-find issues in new users' systems
- New users not taking care to read FAQ's, search the Gentoo forums, read the documentation, misusing terminology, etc...
Two of the best examples of criticisms leveled at Gentoo users are the angry satire of newbie Gentoo users [http://funroll-loops.org/ Gentoo Is Rice] and the "Root Cause"-seeking [http://greenfly.org/mes.html Mandrake Expatriate Syndrome].
Criticisms of the Gentoo Linux Distribution
Gentoo is sometimes criticized for poor Quality Assurance (though this is a possibly 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". Much of the difficulties experienced in past years from the "stable" branch has 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 "upstream" (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, sometimes taking days on older hardware. One of the other interesting debates commonly held is the binary verses source packaging, Gentoo using the latter by default. Source packagers claim that binaries are slow, while binary packagers refute that some packages take days to compile; they want the program now. Of course, both have their own advantages and disadvantages. In response to this criticism, Gentoo offers precompiled binaries for various architectures of popular applications including KDE, GNOME, Open Office and Mozilla, 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" atmosphere has dissipated since Daniel Robbins formed the Not For Profit (NFP) organization known as the Gentoo Foundation.
Most, if not all, of these criticisms are hotly debated between a vocal minority of users of community-based Linux Distributions.
The (little-used) Gentoo Linux mascot is [http://www.gentoo.org/main/en/about.xml Larry the cow].
[http://www.gentoo.org Gentoo Linux]
[http://www.gentoo.org/main/en/philosophy.xml Gentoo Linux philosophy]
[http://forums.gentoo.org Gentoo discussion forums]
[http://gentoo-wiki.com Gentoo Wiki]
[http://www.solidz.com/torrents/ Gentoo torrents]
[http://linuxreviews.org/man/make.conf/ Make.conf manpage]
[http://gentoo-portage.com Gentoo-Portage] - An online searchable version of the portage tree.
[http://www.zynot.org Zynot Foundation] - Fork of Gentoo Linux.
[http://gentoo.vidalinux.com/ Vida Linux] - Gentoo based Linux with installer.