Misplaced Pages

Portage (software)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

Portage is a package management system originally created for and used by Gentoo Linux and also by ChromeOS , Calculate , and Funtoo Linux among others. Portage is based on the concept of ports collections . Gentoo is sometimes referred to as a meta-distribution due to the extreme flexibility of Portage, which makes it operating-system -independent. The Gentoo/Alt project was concerned with using Portage to manage other operating systems, such as BSDs , macOS and Solaris . The most notable of these implementations is the Gentoo/FreeBSD project.

#109890

81-504: There is an ongoing effort called the Package Manager Specification project (PMS), which aims to standardise and document the behaviour of Portage, allowing the ebuild tree and Gentoo system packages to be used with alternative package managers such as Paludis and pkgcore. Its goal is to specify the exact set of features and behaviour of package managers and ebuilds, serving as an authoritative reference for Portage. Portage

162-971: A backend . Yum extends the functionality of the backend by adding features such as simple configuration for maintaining a network of systems. As another example, the Synaptic Package Manager provides a graphical user interface by using the Advanced Packaging Tool (apt) library, which, in turn, relies on dpkg for core functionality. Alien is a program that converts between different Linux package formats , supporting conversion between Linux Standard Base (LSB) compliant .rpm packages, .deb , Stampede (.slp), Solaris (.pkg) and Slackware ( .tgz , .txz , .tbz, .tlz) packages. In mobile operating systems, Google Play consumes Android application package (APK) package format while Microsoft Store uses APPX and XAP formats. (Both Google Play and Microsoft Store have eponymous package managers.) By

243-405: A computer in a consistent manner. A package manager deals with packages , distributions of software and data in archive files . Packages contain metadata , such as the software's name, description of its purpose, version number, vendor, checksum (preferably a cryptographic hash function ), and a list of dependencies necessary for the software to run properly. Upon installation, metadata

324-483: A "-bin" to the package name to instead install the binary version. Example of ebuild for GNOME Terminator : Gentoo does have a binary packaging format, which is a .tbz2 file ( tar with bzip2 compression) with additional metadata . This feature enables the building of binary packages on one system (using Portage's buildpkg or quickpkg ) followed by quick installation on compatible systems (with Portage's getbinpkg or emerge -K ). See Portage Features in

405-483: A "-bin" to the package name to instead install the binary version. Example of ebuild for GNOME Terminator : Gentoo does have a binary packaging format, which is a .tbz2 file ( tar with bzip2 compression) with additional metadata . This feature enables the building of binary packages on one system (using Portage's buildpkg or quickpkg ) followed by quick installation on compatible systems (with Portage's getbinpkg or emerge -K ). See Portage Features in

486-465: A USE flag to include DVD support, where available, in packages compiled with the flag enabled. The USE flags affect which 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 feature would translate to ./configure --with-feature . The specification of USE flags

567-419: A USE flag to include DVD support, where available, in packages compiled with the flag enabled. The USE flags affect which 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 feature would translate to ./configure --with-feature . The specification of USE flags

648-425: A binary executable package on the same or remote computer. Later a package manager typically running on some other computer downloads those pre-built binary executable packages over the internet and installs them. However, both kinds of tools have many commonalities: A few tools, such as Maak and A-A-P , are designed to handle both building and deployment, and can be used as either a build automation utility or as

729-446: A comment from developers explaining the reason for the mask. Gentoo/Alt is a project created to manage porting the portage framework and other features to other operating systems , such as Mac OS X and the free BSDs . Gentoo/Alt was set up by Pieter Van den Abeele and Daniel Robbins after Pieter Van den Abeele founded Gentoo for Mac OS X. Gentoo for Mac OS X was the first non-Linux project of Gentoo and focused on making

810-446: A comment from developers explaining the reason for the mask. Gentoo/Alt is a project created to manage porting the portage framework and other features to other operating systems , such as Mac OS X and the free BSDs . Gentoo/Alt was set up by Pieter Van den Abeele and Daniel Robbins after Pieter Van den Abeele founded Gentoo for Mac OS X. Gentoo for Mac OS X was the first non-Linux project of Gentoo and focused on making

891-469: A directory with the name of the original masked package, and put all the mask files for the package and its dependencies in that directory. This scheme replaces the older scheme of having /etc/portage/package.accept_keywords as one text file. 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

SECTION 10

#1732877093110

972-469: A directory with the name of the original masked package, and put all the mask files for the package and its dependencies in that directory. This scheme replaces the older scheme of having /etc/portage/package.accept_keywords as one text file. 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

1053-486: A format known as the ebuild. Whereas RPM binaries are precompiled binaries , ebuilds are shell scripts 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 .spec files distributed in SRPMs . The official repository provides over 19,600 ebuilds, the majority of which are distributed by

1134-438: A format known as the ebuild. Whereas RPM binaries are precompiled binaries , ebuilds are shell scripts 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 .spec files distributed in SRPMs . The official repository provides over 19,600 ebuilds, the majority of which are distributed by

1215-614: A large extent translatable, as most package managers offer similar functions. The Arch Linux Pacman/Rosetta wiki offers an extensive overview. Package managers like dpkg have existed as early as 1994. Linux distributions oriented to binary packages rely heavily on package management systems as their primary means of managing and maintaining software. Mobile operating systems such as Android (Linux-based), iOS ( Unix-based ), and Windows Phone rely almost exclusively on their respective vendors' app stores and thus use their own dedicated package management systems. A package manager

1296-449: A large number of computers. This kind of pre-configured installation is also supported by dpkg. To give users more control over the kinds of software that they are allowing to be installed on their system (and sometimes due to legal or convenience reasons on the distributors' side), software is often downloaded from a number of software repositories . When a user interacts with the package management software to bring about an upgrade, it

1377-468: A package manager or both. App stores can also be considered application-level package managers (without the ability to install all levels of programs ). Unlike traditional package managers, app stores are designed to enable payment for the software itself (instead of for software development), and may only offer monolithic packages with no dependencies or dependency resolution. They are usually extremely limited in their management functionality, due to

1458-485: A strong focus on simplification over power or emergence , and common in commercial operating systems and locked-down “smart” devices. Package managers also often have only human-reviewed code. Many app stores, such and Google Play and Apple's App Store, screen apps mostly using automated tools only; malware with defeat devices can pass these tests, by detecting when the software is being automatically tested and delaying malicious activity. There are, however, exceptions;

1539-474: A system. A software package is an archive file containing a computer program as well as necessary metadata for its deployment. The computer program can be in source code that has to be compiled and built first. Package metadata include package description, package version, and dependencies (other packages that need to be installed beforehand). Package managers are charged with the task of finding, installing, maintaining or uninstalling software packages upon

1620-630: Is CheckInstall , and for recipe-based systems such as Gentoo Linux and hybrid systems such as Arch Linux , it is possible to write a recipe first, which then ensures that the package fits into the local package database. Particularly troublesome with software upgrades are upgrades of configuration files. Since package managers, at least on Unix systems, originated as extensions of file archiving utilities , they can usually only either overwrite or retain configuration files, rather than applying rules to them. There are exceptions to this that usually apply to kernel configuration (which, if broken, will render

1701-490: Is a currently unofficial port to the DragonFlyBSD kernel. The project is developed by Robert Sebastian Gerus. An unofficial port to GNU Hurd was also being developed, but was abandoned in late 2006. Led by Benda Xu, "Gentoo RAP for Android Devices" installs a variant of Gentoo called Gentoo RAP in a directory prefix alongside Android. The Linux kernel is used by both Android and Gentoo RAP. Gentoo/Interix (eprefix)

SECTION 20

#1732877093110

1782-431: Is a currently unofficial port to the DragonFlyBSD kernel. The project is developed by Robert Sebastian Gerus. An unofficial port to GNU Hurd was also being developed, but was abandoned in late 2006. Led by Benda Xu, "Gentoo RAP for Android Devices" installs a variant of Gentoo called Gentoo RAP in a directory prefix alongside Android. The Linux kernel is used by both Android and Gentoo RAP. Gentoo/Interix (eprefix)

1863-580: Is a port of Gentoo that runs atop the Interix Subsystem for Windows which is also known as Microsoft Windows Services for UNIX (SFU) or Subsystem for Unix-based Applications (SUA). A result of the Gentoo/Interix project is the ability to install and use the Portage system to emerge native Windows applications (requires Visual Studio, 2008 Express Edition will do too). However, this feature does not support

1944-414: Is a port of Gentoo that runs atop the Interix Subsystem for Windows which is also known as Microsoft Windows Services for UNIX (SFU) or Subsystem for Unix-based Applications (SUA). A result of the Gentoo/Interix project is the ability to install and use the Portage system to emerge native Windows applications (requires Visual Studio, 2008 Express Edition will do too). However, this feature does not support

2025-406: Is a software tool designed to optimize the download and storage of binary files, artifacts and packages used and produced in the software development process . These package managers aim to standardize the way enterprises treat all package types. They give users the ability to apply security and compliance metrics across all artifact types. Universal package managers have been referred to as being at

2106-459: Is also called " DLL hell " when working with dynamically linked libraries. Modern package managers have mostly solved these problems, by allowing parallel installation of multiple versions of a library (e.g. OPENSTEP 's Framework system), a dependency of any kind (e.g. slots in Gentoo Portage ), and even of packages compiled with different compiler versions (e.g. dynamic libraries built by

2187-427: Is an ongoing effort called the Package Manager Specification project (PMS), which aims to standardise and document the behaviour of Portage, allowing the ebuild tree and Gentoo system packages to be used with alternative package managers such as Paludis and pkgcore. Its goal is to specify the exact set of features and behaviour of package managers and ebuilds, serving as an authoritative reference for Portage. Portage

2268-506: Is currently what Gentoo offers to Mac OS X users. The Prefix project on Mac OS X is tested and supported on Mac OS X Tiger, Leopard and Snow Leopard on PowerPC , IA-32 , and x86-64 architectures. Gentoo/FreeBSD brings the Gentoo Linux design, structure, and tools such as Portage and the Gentoo Linux base layout to the FreeBSD operating system. Gentoo's GNU toolchain is used instead of

2349-400: Is currently what Gentoo offers to Mac OS X users. The Prefix project on Mac OS X is tested and supported on Mac OS X Tiger, Leopard and Snow Leopard on PowerPC , IA-32 , and x86-64 architectures. Gentoo/FreeBSD brings the Gentoo Linux design, structure, and tools such as Portage and the Gentoo Linux base layout to the FreeBSD operating system. Gentoo's GNU toolchain is used instead of

2430-432: Is customary to present the user with the list of actions to be executed (usually the list of packages to be upgraded, and possibly giving the old and new version numbers), and allow the user to either accept the upgrade in bulk, or select individual packages for upgrades. Many package managers can be configured to never upgrade certain packages, or to upgrade them only when critical vulnerabilities or instabilities are found in

2511-418: Is often called an "install manager", which can lead to a confusion between package managers and installers . The differences include: Most software configuration management systems treat building software and deploying software as separate, independent steps. A build automation utility typically takes human-readable source code files already on a computer, and automates the process of converting them into

Portage (software) - Misplaced Pages Continue

2592-678: Is similar to the BSD -style package management known as ports , and was originally designed with FreeBSD 's ports in mind. Portage is written in the 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 . The ebuild system takes care of the actual work of building and installing packages, while emerge provides an interface to ebuild: managing an ebuild repository, resolving dependencies and similar issues. (These two therefore have roughly

2673-584: Is similar to the BSD -style package management known as ports , and was originally designed with FreeBSD 's ports in mind. Portage is written in the 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 . The ebuild system takes care of the actual work of building and installing packages, while emerge provides an interface to ebuild: managing an ebuild repository, resolving dependencies and similar issues. (These two therefore have roughly

2754-568: Is stored in a local package database. Package managers typically maintain a database of software dependencies and version information to prevent software mismatches and missing prerequisites. They work closely with software repositories , binary repository managers , and app stores . Package managers are designed to eliminate the need for manual installs and updates. This can be particularly useful for large enterprises whose operating systems typically consist of hundreds or even tens of thousands of distinct software packages. An early package manager

2835-458: Is that free and open source software systems permit third-party packages to also be installed and upgraded through the same mechanism, whereas the package managers of Mac OS X and Windows will only upgrade software provided by Apple and Microsoft, respectively (with the exception of some third party drivers in Windows). The ability to continuously upgrade third-party software is typically added by adding

2916-401: Is the heart of Portage. The command is customizable with many options and modifiers. The emerge tool is the most important utility for accessing 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

2997-401: Is the heart of Portage. The command is customizable with many options and modifiers. The emerge tool is the most important utility for accessing 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

3078-457: 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 at the Gentoo website's USE Flag Index . Gentoo does not, by default, use binary packages as other package management systems do (like pacman or apt), employing instead

3159-408: 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 at the Gentoo website's USE Flag Index . Gentoo does not, by default, use binary packages as other package management systems do (like pacman or apt), employing instead

3240-426: Is to allow users to manage the software dependency on data, such as machine learning models for data-driven applications. They are useful to publish, locate, and install data packages. A typical example of a data dependency management frameworks are Hugging Face, KBox, among others. Ian Murdock had commented that package management is "the single biggest advancement Linux has brought to the industry", that it blurs

3321-461: Is used during installation). The current (semi) official logo for Gentoo/FreeBSD is a daemonized "g", derived from original Gentoo Linux logo and inspired by the BSD Daemon . It was designed by Marius Morawski, responding to an unofficial contest launched by Diego Elio Pettenò on his blog. Gentoo/NetBSD is a project to provide a GNU userland managed by Portage with a NetBSD kernel. The project

Portage (software) - Misplaced Pages Continue

3402-408: Is used during installation). The current (semi) official logo for Gentoo/FreeBSD is a daemonized "g", derived from original Gentoo Linux logo and inspired by the BSD Daemon . It was designed by Marius Morawski, responding to an unofficial contest launched by Diego Elio Pettenò on his blog. Gentoo/NetBSD is a project to provide a GNU userland managed by Portage with a NetBSD kernel. The project

3483-457: 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 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

3564-409: 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 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

3645-467: The Glasgow Haskell Compiler , where a stable ABI does not exist), in order to enable other packages to specify which version they were linked or even installed against. System administrators may install and maintain software using tools other than package management software. For example, a local administrator may download unpackaged source code, compile it, and install it. This may cause

3726-450: The URL of the corresponding repository to the package management's configuration file. Beside the system-level application managers, there are some add-on package managers for operating systems with limited capabilities and for programming languages in which developers need the latest libraries . Unlike system-level package managers, application-level package managers focus on a small part of

3807-461: The npm package database, for instance, relies entirely on post-publication review of its code, while the Debian package database has an extensive human review process before any package goes into the main stable database. The XZ Utils backdoor used years of trust-building to insert a backdoor, which was nonetheless caught while in the testing database. Also known as binary repository manager , it

3888-425: The Gentoo mirrors . New and updated ebuilds can be obtained by synchronizing the local ebuild repositories with the mirrors. This is done by executing the command emaint sync -a . Historically, Gentoo has provided 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

3969-425: The Gentoo mirrors . New and updated ebuilds can be obtained by synchronizing the local ebuild repositories with the mirrors. This is done by executing the command emaint sync -a . Historically, Gentoo has provided 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

4050-571: The Gentoo Linux Handbook for more information. 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 manner which prevents a stable system from installing them without 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

4131-507: The Gentoo Linux Handbook for more information. 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 manner which prevents a stable system from installing them without 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

SECTION 50

#1732877093110

4212-567: The Gentoo experience available on Apple 's operating system by introducing the Portage system as a separate entity. This was roughly similar to Fink and MacPorts , but it used Portage instead of a Debian-like or Ports-like system. Later on, Gentoo for Mac OS X was made a subproject of Gentoo/Alt. The project is no longer active, because its prime assumption of using and not modifying the host OS appeared not to be realistic and eventually broke most packages or made them hardly maintainable. Gentoo for Mac OS X has been superseded by Gentoo Prefix , which

4293-567: The Gentoo experience available on Apple 's operating system by introducing the Portage system as a separate entity. This was roughly similar to Fink and MacPorts , but it used Portage instead of a Debian-like or Ports-like system. Later on, Gentoo for Mac OS X was made a subproject of Gentoo/Alt. The project is no longer active, because its prime assumption of using and not modifying the host OS appeared not to be realistic and eventually broke most packages or made them hardly maintainable. Gentoo for Mac OS X has been superseded by Gentoo Prefix , which

4374-401: 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 precompiled binary files. 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

4455-401: 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 precompiled binary files. 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

4536-482: The center of a DevOps toolchain . Each package manager relies on the format and metadata of the packages it can manage. That is, package managers need groups of files to be bundled for the specific package manager along with appropriate metadata, such as dependencies. Often, a core set of utilities manages the basic installation from these packages and multiple package managers use these utilities to provide additional functionality. For example, yum relies on rpm as

4617-415: The character ~ , such as ~x86 , ~amd64 , ~ppc ). An individual keyword masked package can be unmasked by adding a line with the full package name and keyword to some file within the /etc/portage/package.accept_keywords/ directory. Users can make subdirectories here as well, allowing for custom organization. For example, if a masked package had multiple masked dependencies, the user could make

4698-415: The character ~ , such as ~x86 , ~amd64 , ~ppc ). An individual keyword masked package can be unmasked by adding a line with the full package name and keyword to some file within the /etc/portage/package.accept_keywords/ directory. Users can make subdirectories here as well, allowing for custom organization. For example, if a masked package had multiple masked dependencies, the user could make

4779-480: The computer unusable after a restart). Problems can be caused if the format of configuration files changes; for instance, if the old configuration file does not explicitly disable new options that should be disabled. Some package managers, such as Debian 's dpkg , allow configuration during installation. In other situations, it is desirable to install packages with the default configuration and then overwrite this configuration, for instance, in headless installations to

4860-457: The concept of ports collections . Gentoo is sometimes referred to as a meta-distribution due to the extreme flexibility of Portage, which makes it operating-system -independent. The Gentoo/Alt project was concerned with using Portage to manage other operating systems, such as BSDs , macOS and Solaris . The most notable of these implementations is the Gentoo/FreeBSD project. There

4941-644: The nature of free and open source software , packages under similar and compatible licenses are available for use on a number of operating systems. These packages can be combined and distributed using configurable and internally complex packaging systems to handle many permutations of software and manage version-specific dependencies and conflicts. Some packaging systems of free and open source software are also themselves released as free and open source software. One typical difference between package management in proprietary operating systems, such as Mac OS X and Windows, and those in free and open source software, such as Linux,

SECTION 60

#1732877093110

5022-419: The original FreeBSD one. Although the project is no longer maintained by any active Gentoo developers, there are instructions that allow installation of a full Gentoo/FreeBSD system. FreeBSD system ebuilds are integrated into the main portage tree, but this port is far from being complete due to the amount of packages needing to be ported and the lack of a proper Live CD ( FreeSBIE 's Live CD or FreeBSD setup CD

5103-418: The original FreeBSD one. Although the project is no longer maintained by any active Gentoo developers, there are instructions that allow installation of a full Gentoo/FreeBSD system. FreeBSD system ebuilds are integrated into the main portage tree, but this port is far from being complete due to the amount of packages needing to be ported and the lack of a proper Live CD ( FreeSBIE 's Live CD or FreeBSD setup CD

5184-444: The previous version, as defined by the packager of the software. This process is sometimes called version pinning . For instance: Some of the more advanced package management features offer "cascading package removal", in which all packages that depend on the target package and all packages that only the target package depends on, are also removed. Although the commands are specific for every particular package manager, they are to

5265-434: The project are to have better hardware support, better software support and to create a "culture shock" for people that have previously used Linux systems. The project is maintained by Robert Seaton. Package management system A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for

5346-409: The project are to have better hardware support, better software support and to create a "culture shock" for people that have previously used Linux systems. The project is maintained by Robert Seaton. Ebuild Portage is a package management system originally created for and used by Gentoo Linux and also by ChromeOS , Calculate , and Funtoo Linux among others. Portage is based on

5427-486: The same relation as rpm has with yum , or dpkg has with APT .) A GTK+ -based GUI, Porthole , is available for working with Portage. There is also the Himerge GUI, which stands for "Haskell Interface for eMerge". Portage is characterized by its main function: compiling from source code the packages the user wishes to install. In doing so it allows customization of compiler and target-application options to fit

5508-433: The same relation as rpm has with yum , or dpkg has with APT .) A GTK+ -based GUI, Porthole , is available for working with Portage. There is also the Himerge GUI, which stands for "Haskell Interface for eMerge". Portage is characterized by its main function: compiling from source code the packages the user wishes to install. In doing so it allows customization of compiler and target-application options to fit

5589-448: The software system. They typically reside within a directory tree that is not maintained by the system-level package manager, such as c:\cygwin or /opt/sw . However, this might not be the case for the package managers that deal with programming libraries, leading to a possible conflict as both package managers may claim to "own" a file and might break upgrades. In 2016, Edgard Marx, a computer scientist from Leipzig University, coined

5670-477: The state of the local system to fall out of synchronization with the state of the package manager's database . The local administrator will be required to take additional measures, such as manually managing some dependencies or integrating the changes into the package manager. There are tools available to ensure that locally compiled packages are integrated with the package management. For distributions based on .deb and .rpm files as well as Slackware Linux, there

5751-449: The system's specifications and the user's own wishes. Functionalities related to system management include: allowing parallel package-version installation, tracking cross-package dependencies , managing a database of installed packages, providing a local ebuild repository, and synchronizing of the local Portage tree with remote repositories. Functionalities related to individual package installation include: specifying compilation settings for

5832-449: The system's specifications and the user's own wishes. Functionalities related to system management include: allowing parallel package-version installation, tracking cross-package dependencies , managing a database of installed packages, providing a local ebuild repository, and synchronizing of the local Portage tree with remote repositories. Functionalities related to individual package installation include: specifying compilation settings for

5913-446: The target machine and choosing package components. Portage distinguishes between three levels of stability in ebuilds: stable (e.g., the software works as intended with no known security issues at time of release), keyword masked (mainly for packages that have not been sufficiently tested on the target system architecture to be considered stable) and hard masked (broken or very insecure) packages. The emerge command-line tool

5994-446: The target machine and choosing package components. Portage distinguishes between three levels of stability in ebuilds: stable (e.g., the software works as intended with no known security issues at time of release), keyword masked (mainly for packages that have not been sufficiently tested on the target system architecture to be considered stable) and hard masked (broken or very insecure) packages. The emerge command-line tool

6075-567: The term Data Dependency Management to refer to the systems that deal with the management of data. Data Dependency Management systems are designed to facilitate the deployment and management of data on the cloud, personal computers, or smart devices (edge). Data Dependency Management frameworks can be used to describe how the data was conceived, licensing as well as its dependencies. The concept of data dependency management comes from software package dependency management tools such as npm for JavaScript, gem for Ruby, and NuGet for .NET. Their rationale

6156-474: The user's command. Typical functions of a package management system include: Computer systems that rely on dynamic library linking, instead of static library linking, share executable libraries of machine instructions across packages and applications. In these systems, conflicting relationships between different packages requiring different versions of libraries results in a challenge colloquially known as " dependency hell ". On Microsoft Windows systems, this

6237-532: The wide variety of packages supported by other platforms (including Interix). An unofficial port to the Solaris operating system, "Portaris", was announced around 2006, but never got into a public state. It was superseded by the Gentoo Prefix project. Started in 2011 as a Google Summer of Code project, Plan 9 For Gentoo takes the Gentoo base and overlays a userspace inspired by Plan 9 . The stated objectives of

6318-426: The wide variety of packages supported by other platforms (including Interix). An unofficial port to the Solaris operating system, "Portaris", was announced around 2006, but never got into a public state. It was superseded by the Gentoo Prefix project. Started in 2011 as a Google Summer of Code project, Plan 9 For Gentoo takes the Gentoo base and overlays a userspace inspired by Plan 9 . The stated objectives of

6399-550: Was SMIT (and its backend installp) from IBM AIX . SMIT was introduced with AIX 3.0 in 1989. Early package managers, from around 1994, had no automatic dependency resolution but could already drastically simplify the process of adding and removing software from a running system. By around 1995, beginning with CPAN , package managers began doing the work of downloading packages from a repository, automatically resolving its dependencies and installing them as needed, making it much easier to install, uninstall and update software from

6480-463: Was started by Damian Florczyk. Only the x86 architecture is targeted and the system as a whole is in an incomplete state. Gentoo/OpenBSD was a Gentoo/*BSD subproject to port Gentoo features such as Portage to the OpenBSD operating system. It was originally started by Grant Goodyear and is deprecated . An install guide is provided on the project page but is also marked as deprecated. Gentoo/DragonFlyBSD

6561-413: Was started by Damian Florczyk. Only the x86 architecture is targeted and the system as a whole is in an incomplete state. Gentoo/OpenBSD was a Gentoo/*BSD subproject to port Gentoo features such as Portage to the OpenBSD operating system. It was originally started by Grant Goodyear and is deprecated. An install guide is provided on the project page but is also marked as deprecated. Gentoo/DragonFlyBSD

#109890