Gentoo

From LQWiki
Jump to: navigation, search

Gentoo is a special flavor of Linux that can be automatically optimized and customized for just about any application or need. Extreme performance, configurability, and a top-notch user and developer community are all hallmarks of the Gentoo experience. 'The word "gentoo" is the name for a species of penguins.'

Thanks to a technology called PortAge, Gentoo Linux can become an ideal secure server, development workstation, professional desktop, gaming system, embedded solution or whatever you need it to be. Because of its near-unlimited adaptability, Gentoo Linux is called a metadistribution.

Portage is the heart of Gentoo Linux, and performs many key functions. Your local Portage tree contains a complete collection of scripts that can be used by Portage to compile and install the latest Gentoo packages. Currently, there are over 6000 packages in the Portage tree, with new ones being added all the time. Installing a new application is as easy as:

# emerge packagename

The application will then be downloaded and automatically compiled from source, with compile-time options selected according to preferences you set during installation in your make.conf file, (i.e. with or without support for X, PNGs, JPEGs, Gnome, etc). N.B - Portage will automatically cater for any dependencies when installing software.

Daniel Robbins is Gentoo's chief architect. You can read his philosophy of Gentoo Linux here.

Gentoo help resources

If you are looking for help on Gentoo Linux, the Gentoo forums are an excellent resource and are full of both friendly and knowledgeable people. The IRC room at irc.freenode.net called #gentoo is also a place to find community around Gentoo. Before checking either of those, visit the Gentoo documentation site, where many high-quality documents have been published on common and not-so-common issues.

Installing Masked Packages

Some packages in the portage tree are "masked" i.e. marked as unstable, and cannot be installed on a default system. To emerge a masked package (or a masked version of one) prefix the emerge command as follows ACCEPT_KEYWORDS="~x86" emerge package (replace x86 with your architecture). A slightly shorter way is to create a script called /usr/sbin/expmerge, with the following contents:

#!/bin/sh
ACCEPT_KEYWORDS="~x86" emerge $*

Then after marking as executable (chown root:root /usr/sbin/expmerge && chmod ug+wrx /usr/sbin/expmerge) just

expmerge package

Mixing unstable with stable packages can lead to problems, so it's recommended you pick one type and use it all the time. This is more important for libraries rather then programs. To use masked packages for the entire system add to /etc/make.conf (Note: This is an unsupported method and should not be used.):

ACCEPT_KEYOWORDS="~x86"

Another technique is to create the file /etc/portage/package.keywords and add the packages that you want to always use the unstable version, for example:

media-video/nvidia-kernel ~x86
media-video/nvidia-glx ~x86
x11-base/opengl-update ~x86
media-sound/beep-media-player ~x86
x11-misc/transset ~x86

To easily add new items to this file simply:

echo "app-editors/vim ~x86" >> /etc/portage/package.keywords

Then when you upgrade these packages will remain ~x86

See also