Revision 113368956 of "Benutzer:Ulm/Portage (software)" on dewiki{{Unreferenced|date=July 2007}}
{{Infobox Software
| name = Portage
| logo =
| screenshot = [[Image:Portage-oppdatering.png|250px]]
| caption = Portage in action
| author =
| developer =
| released =
| latest release version =
| latest release date =
| latest preview version =
| latest preview date =
| operating system = [[Gentoo Linux]] and [[Gentoo/FreeBSD]]
| platform = POSIX-compatible/Python-capable
| genre = [[Package management system]]
| license =
| website = [http://www.gentoo.org/proj/en/portage/ http://www.gentoo.org/proj/en/portage/]
}}
[[Image:Porthole-screenshot.png|thumb|Porthole graphical frontend|180px|right]]
'''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.<ref>[http://www.gentoo.org/main/en/about.xml Gentoo Linux - About Gentoo<!-- Bot generated title -->]</ref><ref>[http://tom.acrewoods.net/writing/gentoo-workstation My Workstation OS: Gentoo | Tom Chance's website<!-- Bot generated title -->]</ref><ref>[http://www.linuxdevcenter.com/pub/a/linux/2002/10/10/intro_gentoo.html LinuxDevCenter.com - Gentoo Linux Reloaded<!-- Bot generated title -->]</ref><ref>[http://www.osnews.com/story.php/1080/Interview-with-Gentoos-Daniel-Robbins/ Interview with Gentoo's Daniel Robbins<!-- Bot generated title -->]</ref> In addition to Gentoo Linux there exist Portage implementations for [[FreeBSD]], [[Mac OS X]] and [[Solaris (operating system)|Solaris]].
Portage is similar to the [[Berkeley Software Distribution|BSD]] [[package management system]] called [[ports collection|ports]]; in fact it was originally designed with [[FreeBSD]]'s ports in mind.<ref>[http://www.gentoo.org/doc/en/articles/making-the-distro-p3.xml Gentoo Linux Documentation - Making the distribution, Part 3<!-- Bot generated title -->]</ref> Gentoo's Portage system works similarly to [[Debian]]'s [[Advanced Packaging Tool|APT]]. Portage is written in the [[Python (programming language)|Python programming language]], and is the main utility that defines Gentoo. Although the system itself is known as Portage, it consists of two main parts, the ''[[ebuild]]'' system and emerge. These two have roughly the same relation as [[RPM Package Manager|rpm]] and [[Yellow dog Updater, Modified|yum]], or [[dpkg]] and [[Advanced Packaging Tool|apt]], in that the ebuild system takes care of the actual work of building and installing packages, while emerge is a front-end that resolves dependencies and similar issues. A [[Qt (toolkit)|Qt]]-based GUI known as [[Kuroo]], two [[GTK+]]-based GUIs: Porthole and Portato are also available for working with Portage.
There is an ongoing effort called PMS project<ref>[http://www.gentoo.org/proj/en/qa/pms.xml PMS project]</ref> to standardise and document the behaviour of Portage, allowing the ebuild tree and Gentoo system packages to be used with alternate package managers such as Paludis and pkgcore. PMS stands for Package Manager Specification and its goal is to specify the behavior of package managers upon which Gentoo ebuilds can rely. There is a complete draft available<ref>[http://dev.gentoo.org/~spb/pms.pdf PMS draft]</ref>.
==Features==
===emerge===
The '''emerge''' command-line tool is the heart of Portage. The command is customizable with many options and modifiers. The emerge tool is the most important utility to access the features of Portage from the [[command line]].
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. The emerge utility executes ebuilds in a [[sandbox (security)|sandbox]] environment. 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.
What emerge installs as dependencies is affected by the USE flag-settings. They decide which optional features will be included when installing or upgrading an application. The emerge command can also be used to download and install binary files.
===USE flags===
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. For example, there is a USE flag to include [[DVD]] support, where available, in packages compiled with the flag enabled. The USE flags affect which [[Coupling (computer science)|dependencies]] are required, generally affecting which optional features will be built into a given program when it is compiled. For example, in packages which use a [[configure script]], the USE flag <code>feature</code> would translate to <code>./configure --with-feature</code>.
The specification of USE flags is the usual way to configure programs on Gentoo. USE flags may be set manually, or via user-friendly tools such as 'ufed' (USE flag editor), which lists flags along with their description. A list of available USE flags, is available in the [http://www.gentoo.org/dyn/use-index.xml "Gentoo Linux Use Variable Descriptions" page of the Gentoo website].
===Ebuilds===
{{main|Ebuild}}
Gentoo does not, by default (see next paragraph), use binary packages as [[package management system]]s (like [[RPM Package Manager|RPM]]) do, employing instead a format known as the ebuild. Whereas RPMs are precompiled [[binaries]], ebuilds are [[shell script]]s with variables and functions which contain a description of the software, and instructions on how to obtain, configure, [[compile]], and install it, more closely akin to (but more powerful than) the [[RPM Package Manager#Spec file|.spec files]] distributed in [[SRPM]]s. There are nearly 25,000 ebuilds available, the majority of which are distributed by the Gentoo [[Mirror (computing)|mirrors]]. New and updated ebuilds can be obtained by synchronizing the local ebuild repository with the mirrors. This is done by executing the command <tt>emerge --sync</tt>. Recently, Gentoo has begun providing pre-compiled binary packages for many common programs, especially those which are lengthy to compile, such as [[Mozilla Firefox]] and [[OpenOffice.org]]. These are still installed with emerge, just by appending a "-bin" to the package name to instead install the binary version.
Gentoo does have a binary packaging format, which is a ''.tbz2'' file ([[tar (file format)|tar]] with [[bzip2]] compression) with additional [[metadata]]. This feature enables the building of binary packages on one system (using Portage's <tt>buildpkg</tt> or <tt>quickpkg</tt>) followed by quick installation on other, identical systems (with Portage's <tt>getbinpkg</tt> or <tt>emerge -K</tt>). See [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=3#doc_chap4 Portage Features in the Gentoo Linux Handbook] for more information.
===Masking===
''Masking'' is how Gentoo determines which packages are suitable for a system. Ebuilds designed for different architectures or experimental software are usually masked in a way that will not allow a stable system to install them with no proper 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 <tt>~</tt>, such as <tt>~x86</tt>, <tt>~amd64</tt>, <tt>~ppc</tt>). The standard way to unmask an individual ''keyword masked'' package is by adding an entry to <tt>/etc/portage/package.keywords</tt>.
Packages with known problems or not considered mature enough to be candidates for stable are ''hard masked'' by one of the various package.mask files in /usr/portage/profiles, and such entries are generally accompanied by a comment from developers explaining the reason for the mask.
==See also==
{{portal|Free software|Free Software Portal Logo.svg}}
* [[Kuroo]]
* [[pkgsrc]]
* [[Paludis]]
==External links==
* [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=3 Gentoo Portage Features]
* [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1 Gentoo Portage Introduction]
* [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3 Working with Portage]
* [http://wiki.kaspersandberg.com/doku.php?id=howtos:portage unofficial informative portage howto/guide]
* [http://www.gentoo-portage.com/ Gentoo-Portage]
* [http://forums.gentoo.org/viewtopic.php?t=125553 Installing portage on other Linux distros]
* [http://emerde.freaknet.org/ Emerde, portage-like project for Slackware]
==References==
<references />
[[Category:Gentoo Linux]]
[[Category:Free package management systems]]
[[Category:Python software]]
[[cs:Portage]]
[[de:Gentoo Linux#Paketverwaltung]]
[[es:Portage]]
[[eu:Portage]]
[[fr:Portage (Gentoo)]]
[[ko:포티지 (소프트웨어)]]
[[it:Portage]]
[[nl:Portage]]
[[ja:Portage]]
[[pl:Portage (program)]]
[[pt:Portage (software)]]
[[ru:Portage]]
[[fi:Portage]]
[[sv:Portage]]
[[zh:Portage]]All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://de.wikipedia.org/w/index.php?oldid=113368956.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|