Gento - Portage

Portage

Portage is Gentoo's package management system. It is similar in idea to the BSD ports collections: the original design was based on FreeBSD ports. In contrast, the Portage tree does not contain directories of Makefiles, but of so-called ebuilds, Bash-like scripts that describe separate functions to download, configure, make, install and remove a package and additional functions that can be used to set up the operating environment for a package.

In contrast to other distributions, the Portage tree contains many packages which are considered non-free by the Free Software movement, and these may be installed using the same mechanisms as other packages, provided the user has agreed to the license by enabling it in an appropriate configuration file.

Portage's main utility is emerge, which is written in Python and can be used by privileged users to inspect and alter the set of installed packages on a Gentoo operating system. Whereas emerge used to operate in a similar way to other ports collections, by entering a directory in the tree and using emerge (instead of make) to perform package management operations, it now reads variables from the file /etc/portage/make.conf (again similar to ports) to determine where the Portage tree is kept.

Alternative package management utilities like Paludis and pkgcore have seen heavy development. Both are intended to be used alongside or instead of the official Portage utilities in both development and practical use. As both competing projects intend to replace the official utilities, an effort has been raised to standardise the application programming interface (API) of ebuilds for all package managers, in a project called the Package Manager Specification or PMS.

Read more about this topic:  Gento