Portage (software)

Its goal is to specify the exact set of features and behaviour of package managers and ebuilds, serving as an authoritative reference for Portage.

Portage is characterized by its main function: compiling from source code the packages the user wishes to install.

Functionalities related to system management include: allowing parallel package-version installation, tracking cross-package dependencies, managing a database of installed packages, providing a local ebuild repository, and synchronizing of the local Portage tree with remote repositories.

Portage distinguishes between three levels of stability in ebuilds: stable (e.g., the software works as intended with no known security issues at time of release), keyword masked (mainly for packages that have not been sufficiently tested on the target system architecture to be considered stable) and hard masked (broken or very insecure) packages.

The program calculates and manages dependencies, executes ebuilds and maintains the local Portage tree and database of installed packages.

The compilation settings used by ebuilds can be changed through the CFLAGS environment variable, based on the specifications of the individual computer and on the user's desire for optimization.

This way the system is protected from software executed by the ebuild and resulting binaries are only merged after a successful build and sandboxed install.

The Portage system offers the use of "USE flags", which allows users to indicate which software features they would like to include (and exclude) while building packages.

Historically, Gentoo has provided pre-compiled binary packages for many common programs, especially those which are lengthy to compile, such as Mozilla Firefox and OpenOffice.org.

Example of ebuild for GNOME Terminator: Gentoo does have a binary packaging format, which is a .tbz2 file (tar with bzip2 compression) with additional metadata.

Ebuilds designed for different architectures or experimental software are usually masked in a manner which prevents a stable system from installing them without 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).

Gentoo/Alt is a project created to manage porting the portage framework and other features to other operating systems, such as Mac OS X and the free BSDs.

The project is no longer active, because its prime assumption of using and not modifying the host OS appeared not to be realistic and eventually broke most packages or made them hardly maintainable.

Although the project is no longer maintained by any active Gentoo developers, there are instructions that allow installation of a full Gentoo/FreeBSD system.

It was designed by Marius Morawski, responding to an unofficial contest launched by Diego Elio Pettenò on his blog.

A result of the Gentoo/Interix project is the ability to install and use the Portage system to emerge native Windows applications (requires Visual Studio, 2008 Express Edition will do too).

Porthole graphical frontend.
Unmerge of SpaceFM file manager
Portage during system update