Portage is an advanced package management system. Its flexibility and its ability to serve as either a simple build engine or to form the heart of a Linux distribution earns it the title of a Meta-distribution Engine. The Gentoo Linux distribution is built around Portage.

Gentoo Linux itself is often referred to as a Meta-distribution. It consists of Portage and more than 4000 sets of package build recipes called ebuilds. These ebuilds tell the Portage engine how to compile and install a software package. Through the use of profiles and the command-line utility called emerge, users and developers can use Portage to install and maintain the packages that make up the underlying operating system and the applications on a system.

A Gentoo Linux system is "compiled on the fly". The act of installing Gentoo Linux involves setting up enough of a working compiler and build environment through which Portage can download source code from the Internet and build the rest of the "core" of the system and any desired applications. Although Portage does support the use of premade binary packages they are a compromise and only used for installation on slow machines, by developers who might need to quickly restore a certain package, or for when users compile packages on a faster machine for use on very old machines.

Due to these properties, and the fact that Portage is highly configurable in the way it handles compiling and installing packages, very few Gentoo Linux installations are the same. In essence, when a user installs Gentoo Linux, the Portage system compiles a customized Linux distribution conforming to the options specified in the Portage configuration and in the builds themselves.

At first glance the idea behind Portage may seem similar to the traditional BSD ports system. They both compile packages from source and allow users to safely install and uninstall software from a system and both automatically handle dependencies. Many ideas for Portage are borrowed from the BSD ports systems.

The Portage system is a merge of a Python core with Bash script based Ebuilds.

Some of the advanced features Portage offers are the ability to have multiple versions and revisions of the same package in the tree, conditional dependency resolution and feature support, fine-grained package management, sandboxed safe installation, configuration file protection and profiles.

See also LiveCD, Knoppix.

External link