Package (package management system)
A software package is a software that has been built from source with one of the available package management systems (PMS). The package is typically provided as compiled code, with additional meta-information such as a package description, package version, or "dependencies". The package management system can evaluate this meta-information to allow package searches; to perform automatic upgrades to a newer version; to check that all dependencies of a package are fulfilled and/or to fulfill them automatically by installing missing packages.
Almost all GNU/Linux distributions are built around, and heavily based upon a package management system and every piece of software available in the online package repositories is packaged into a software package, so that the user can conveniently install, update, downgrade or uninstall them, resulting in a tidy and secure operating system.
When the version dependency allows for it, libraries are packaged independently and used commonly. This introduces something called "dependency hell", a serious burden upon the distribution maintainers. But it also reduces code duplication inside of the operating system to a minimum, and at the same time multiplies the possibilities to test the version of a library for stability and security flaws. Thus, the existence of a package management system results in GNU/Linux distributions being relatively smaller in size compared to operating systems which do not have a package management system. In conjunction with the general advantages and benefits of free software this also results in better overall security and quality, provided the package is actively maintained.
- Ludovic Courtès, Functional Package Management with Guix, June 2013, Madrid, European Lisp Symposium 2013 ;
|This Linux-related article is a stub. You can help Wikipedia by expanding it.|
|This software article is a stub. You can help Wikipedia by expanding it.|