Package management system
lastmod 2025-12-08created 2015-10-2825 edits
In software, a package management system, also called package manager, is a collection of software tools to automate the process of installing, upgrading, configuring, and removing software packages for a computer's operating system in a consistent manner. It typically maintains a database of software dependencies and version information to prevent software mismatches and missing prerequisites.
Categories
- apt-get
- dpkg (Debian)
- Red Hat Package Manager (rpm)
- yum/dnf
- pacman (arch)
- winget (Windows)
- chocolatey (Windows)
- MacPort (MACOSX)
- Homebrew (MACOSX)
- Webpack (web front-end)
- npm (Node.js)
- pypi (python; pip)
- RubyGems (ruby)
- Docker Registry (docker)
- biicode (C/C++)
- conan (C/C++)
- vcpkg (C/C++)
- NuGet (.NET)
- Maven (Java)
- Hackage (Haskell; cabal)
- CPAN (Perl)
- PECL, Packagist (PHP; PEAR; Composer)
- crates.io (Rust; Cargo)
- CTAN (TeX, LaTeX)
- Helm (kubernetes)
Multi
Packaging tools and server
Linux Package management systems
| APT (Synaptic, Ubuntu Software Center, KPackage, Adept Manager), aptitude, dselect | |
| Others | Pacman, ipkg, opkg, PPM, Upkg, PISI, Conary, Portage, Entropy, slapt-get, slackpkg, netpkg, swaret |
| Front-ends | PackageKit (GNOME Software, Apper), Autopackage, klik, Listaller, Zero Install |
| Related topics | AppData, AppStream, Application Packaging, Package format |
See also
Favorite site
- Wikipedia (en) PMS
- Wikipedia (en) List of software package management systems
- A short comparison sheet of Ubuntu APT and Fedora YUM
- [Recommended] Package Management Cheatsheet
Archive repository
Developement
- Writing a package manager | GeekNews
- [Original] Writing a package manager
- How the author built an unofficial package manager for SQLite extensions.
- Shares in detail the design of the components a package manager needs and the process behind it.
- Design of a spec file describing the package: owner, name, version, assets, etc.
- Design of a hierarchical folder structure separated by owner/name.
- Managing project and global scopes.
- Implementing spec file locators: package repository, git repository, local file, etc.
- Versioning and the latest version.
- Adding a checksum for each asset to the spec file.