Portage (software)

From Free net encyclopedia

Portage is a package management system used by Gentoo Linux. Gentoo is sometimes referred to as a "meta-distribution" due to the flexibility of Portage which allows it to manage other operating systems as well. In addition to Gentoo Linux there exists Portage implementations for FreeBSD, Mac OS X and Sun Solaris.

Portage consists of a hierarchal tree of ebuilds (currently more than 10,000 in Gentoo Linux) and management utilities such as emerge and a suite of related tools packaged as gentoolkit. 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 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.

Portage derives its name and general design from the BSD ports system of FreeBSD/NetBSD/OpenBSD. Traditionally ports is implemented as a complex tree of Makefiles. Both compile packages from source and allow users to safely install and uninstall software from a system and automatically handle dependencies. The intent behind Portage is to harness the strength of Python to create a next-generation ports system that is more powerful while being easier to use and maintain.

A system managed by Portage 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 or for proprietary software which doesn't have source available, 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 among a number of clients is a frequently used technique for managing an entire network.

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

Template:Portalpar

External links

es:Portage eu:Portage it:Portage nl:Portage fi:Portage pt:Portage sv:Portage zh:Portage