Portage (software)
|
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 nearly 19,000 sets of package build recipes called ebuilds. More are always being added. These ebuilds contain the metadata about the package as well as the instructions on how to compile, install and configure 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 can be "compiled on the fly". The act of installing Gentoo Linux from scratch 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. However, Portage does support the use of prebuilt packages for those wishing to quickly setup a fully working system. Most users see this as a compromise and use it only for installation on slow machines, but it also provides a fast installation for 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. In large environments, the use of a build cluster to create the prebuilt packages and distribute them amongst the various Gentoo Linux clients is a frequently used technique for managing an entire network.
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. The command used to install and upgrade applications on a Gentoo Linux system is emerge.
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.
External links
- Gentoo Portage Features (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=3)
- Gentoo Portage Introduction (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1)
- Working with Portage (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3)
- Gentoo Wiki (http://www.gentoo-wiki.com)eu:Portage