Table of Contents
Cloud Monk's Package Manager Book (December 2024)
Return to Cloud Monk Books, Cloud Monk's Development PC DevOps Automation via Ansible-Chocolatey-PowerShell-Homebrew-DNF-APT, Cloud Monk's Package Manager Book, Cloud Monk Library
“DevOps is the union of people, process, and products to enable CONTINUOUS DELIVERY of value to our end users.” – Donovan Brown of Microsoft
The Cloud Monk, Losang Jinpa, is now focused writing until end of December 2025 on his polyglot programmer compendium - concordance books Cloud Monk's Package Manager Book and DevOps for 20 Languages by Cloud Monk (with a particular focus on Cloud Native DevSecOps and Web API Security) to be published on GitHub and this Wiki. (navbar_devops_book - navbar_devops_focus
DevOps Focus: Cloud Monk is focused on “All Things DevOps”: DevOps Topics, Kubernetes DevOps Topics, Cloud Native DevOps Topics, Azure DevOps Topics, AWS DevOps Topics, GCP DevOps Topics, Python DevOps Topics, Java DevOps Topics, JavaScript DevOps Topics, Golang DevOps Topics, Linux DevOps Topics, PowerShell DevOps Topics, Windows DevOps Topics, SQL Server DevOps Topics. (navbar_devops_focus)
“DevOps is the union of DevOps people | people, DevOps process | process, and DevOps products | products to enable DevOps and continuous delivery | continuous delivery of DevOps value | value to our end users.” – Donovan Brown of Microsoft DevOps | Microsoft
DevOps Package Management Continuous Deployment Focus
1. Python - Python Packages - Python Modules - pip, Conda-Miniconda
2. Golang - Go Packages - Go Modules
3. JVM: Maven - Gradle: 3. Java - Java Packages - Java Modules (JPMS), 10. Kotlin, 11. Scala - Scala Packages - Scala Modules, 12. Clojure - Clojure Packages - Clojure Modules
4. JavaScript / TypeScript / Node.js: Yarn, NPM, NVM, Babel, Bazel
5. CPP23: CPP Modules, CPP Package Managers
6. C Sharp dot NET: Nuget - C Sharp Packages - C Sharp Modules
7. PowerShell - PowerShell Packages - PowerShell Modules
Bibliography
- Kubernetes Package Administration with Helm - by Andrew Pruski - This course is for anyone looking to get into Helm administration. It covers installing Helm and configuring Helm, working with Helm releases, and managing Helm repositories. - https://app.pluralsight.com/library/courses/kubernetes-package-administration-helm
- Maven Fundamentals by Bryan Hansen - A course covering the fundamentals of using Maven for building Java applications. - https://app.pluralsight.com/library/courses/maven-fundamentals/exercise-files
- Publishing Python Packages - Test, share, and automate your projects by Dane Hillard, Manning, MEAP began August 2021, Publication in January 2023 (estimated), ISBN 9781617299919, 248 pages (estimated), 1617299919 (PubPyPkg 2023)
Outline
NOTE: One of the most important responsibilities of a programmer is dependency management to avoid the technical debt of dependency hell.
- Most popular Package Managers - Most important to learn
- Chocolatey: Open-source decentralized package manager for Microsoft Windows | Windows in the spirit of Yellow dog Updater Modified | Yum and Advanced Packaging Tool | apt-get. Usability wrapper for NuGet;
- NuGet: A Microsoft-official free and open-source package manager for Microsoft Windows | Windows, available as a plugin for Microsoft Visual Studio | Visual Studio, and extendable from the command-line;
- B: Windows Store: Official app store for Metro-style apps on Windows NT and Windows Phone. As of Windows 10, it distributes video games, films and music as well;
- A Priority: RPM Package Manager: Created by Red Hat. RPM is the Linux Standard Base packaging format and the base of a number of additional tools, including apt4rpm, Red Hat's up2date, Mageia's urpmi, openSUSE's ZYpp (zypper), PLD Linux Distribution | PLD Linux's poldek (software) | poldek, Fedora (operating system) | Fedora's DNF (software) | DNF, and Yellow dog Updater Modified | YUM, which is used by Red Hat Enterprise Linux, and Yellow Dog Linux;
- A: dpkg: Originally used by Debian and now by Ubuntu (operating system) | Ubuntu. Uses the deb (file format) | .deb format and was the first to have a widely known dependency resolution tool, Advanced Packaging Tool | APT. The ncurses-based front-end for APT, aptitude (software) | aptitude, is also a popular package manager for Debian-based systems;
- B: Snappy (package manager) | Snappy: Cross-distribution package manager, non-free on the server-side, originally developed for Ubuntu (operating system) | Ubuntu;
- A: Google Play: Online app store developed by Google for Android (operating system) | Android devices that license the proprietary Google Application set;
- B: Amazon Appstore: Alternative app store for Android devices;
- A: Homebrew (package manager) | Homebrew: Command-line interface | Command-Line Interface-based package manager, known for its ease-of-use and extensibility.
- B: Mac App Store: Official digital distribution platform for OS X apps. Part of OS X 10.7 and available as an update for OS X 10.6;
- C: Nix Package Manager: Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. It provides atomic upgrades and rollbacks, side-by-side installation of multiple versions of a package, multi-user package management and easy setup of build environments;
- D: OpenBSD ports: The infrastructure behind the binary packages on OpenBSD
- C: Pacman (Arch Linux) | Pacman: Used in Arch Linux, Frugalware and DeLi Linux. Its binary package format is a zstd-compressed tar archive (file extension:
.pkg.tar.zst
) built using the makepkg utility (which comes bundled with pacman) and a specialized type of shell script called a PKGBUILD;
- C: Flatpak: A containerized/sandboxed packaging format previously known as xdg-app;
Short description: This is a list of notable software package management systems, categorized first by package format (binary package format, source code package format, hybrid package format) and then by operating system family.
Binary packages
The following package management systems distribute apps in binary (Binary (software)) package (package management system) | package form; i.e., all apps are Compiler | compiled and ready to be installed and use.
Unix-like
Linux
- dpkg: Originally used by Debian and now by Ubuntu (operating system) | Ubuntu. Uses the deb (file format) | .deb format and was the first to have a widely known dependency resolution tool, Advanced Packaging Tool | APT. The ncurses-based front-end for APT, aptitude (software) | aptitude, is also a popular package manager for Debian-based systems;
- Package management | Entropy: Used by and created for Sabayon Linux. It works with binary packages that are bzip2-compressed tar archives (file extension:
.tbz2
), that are created using Entropy itself, from tbz2 binaries produced by Portage (software) | Portage: From ebuilds, a type of specialized shell script;
- Flatpak: A containerized/sandboxed packaging format previously known as xdg-app;
- GNU Guix: Used by the GNU System. It is based on the Nix package manager with Guile Scheme APIs and specializes in providing exclusively free software;
- Homebrew (package management software) | Homebrew: a port of the MacOS package manager of the same name (see below), formerly referred to as 'Linuxbrew';
- ipkg: A dpkg-inspired, very lightweight system targeted at storage-constrained Linux systems such as embedded devices and handheld computers. Used on webOS | HP's webOS;
- Nix Package Manager: Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. It provides atomic upgrades and rollbacks, side-by-side installation of multiple versions of a package, multi-user package management and easy setup of build environments;
- OpenPKG: Cross-platform package management system based on RPM Package Manager;
- Pacman (Arch Linux) | Pacman: Used in Arch Linux, Frugalware and DeLi Linux. Its binary package format is a zstd-compressed tar archive (file extension:
.pkg.tar.zst
) built using the makepkg utility (which comes bundled with pacman) and a specialized type of shell script called a PKGBUILD;
- PETget: Used by Puppy Linux;
- PISI: Pisi stands for “Packages Installed Successfully as Intended”. Pisi package manager is used by Pisi Linux.<ref>
</ref> Pardus (operating system) | Pardus used to use Pisi, but migrated to APT in 2013;<ref>
</ref>
- RPM Package Manager: Created by Red Hat. RPM is the Linux Standard Base packaging format and the base of a number of additional tools, including apt4rpm, Red Hat's up2date, Mageia's urpmi, openSUSE's ZYpp (zypper), PLD Linux Distribution | PLD Linux's poldek (software) | poldek, Fedora (operating system) | Fedora's DNF (software) | DNF, and Yellow dog Updater Modified | YUM, which is used by Red Hat Enterprise Linux, and Yellow Dog Linux;
- slapt-get: Which is used by Slackware and works with a binary package format that is essentially a xz-compressed tar archive with the file extension
.txz;
- Smart Package Manager: Used by CCux Linux;
- Snappy (package manager) | Snappy: Cross-distribution package manager, non-free on the server-side, originally developed for Ubuntu (operating system) | Ubuntu;
- Zero Install (0install): Cross-platform packaging and distributions software. It is available for Arch Linux, Debian, Knoppix, Linux Mint | Mint, Ubuntu (operating system) | Ubuntu, Fedora (operating system) | Fedora, Gentoo Linux | Gentoo, OpenSUSE, Red Hat Linux | Red Hat and Slackware;
Android
- Amazon Appstore: Alternative app store for Android devices;
- Aptoide: application for installing mobile applications which runs on the Android operating system. In Aptoide there is not a unique and centralized store; instead, each user manages their own store.
- Cafe Bazaar: Alternative app store for Android.
- F-Droid: An app store used in Replicant (operating system) | Replicant, which aims to replace the Proprietary software | proprietary components of Android with free software alternatives;
- GetJar: An independent mobile phone app store founded in Lithuania in 2004;
- Google Play: Online app store developed by Google for Android (operating system) | Android devices that license the proprietary Google Application set;
- Huawei AppGallery: An app store developed by Huawei for Android (operating system) | Android devices and HarmonyOS devices.
macOS (OS X)
- Mac App Store: Official digital distribution platform for OS X apps. Part of OS X 10.7 and available as an update for OS X 10.6;
- Homebrew (package manager) | Homebrew: Command-line interface | Command-Line Interface-based package manager, known for its ease-of-use and extensibility.
- MacPorts: Formerly known as DarwinPorts, based on FreeBSD Ports (as is macOS itself);
- Zero Install (0install): Cross-platform packaging and distributions software. Uses GnuPG and GTK+ on macOS;
BSD
- OpenBSD ports: The infrastructure behind the binary packages on OpenBSD;
- dpkg: Used as part of Debian GNU/kFreeBSD;
- TrueOS | PC-BSD: Up to and including version 8.2<ref>pbiDIR</ref> uses files with the .pbi (Push Button Installer) filename extension which, when double-clicked, bring up an installation wizard program. Each PBI is self-contained and uses de-duplicated private dependencies to avoid version conflicts. An autobuild system tracks the FreeBSD ports collection and generates new PBIs daily. PC-BSD also uses the FreeBSD pkg binary package system; new packages are built approximately every two weeks from both a stable and rolling release branch of the FreeBSD ports tree.
Solaris, illumos
- Image Packaging System (IPS, also known as “pkg(5)”): Used by Solaris (operating system) | Solaris, OpenSolaris and Illumos Current Illumos distributions | distributions like OpenIndiana and Current Illumos distributions | OmniOS;
- pkgsrc: SmartOS, OS distribution of Illumos from Joyent uses pkgsrc, that also can be bootstrapped to use on OpenIndiana;<ref>
</ref>
- OpenCSW: Community supported collection of packages in SysV (package format) | SysV format for SunOS 5.8-5.11 (Solaris 8-11);
- OpenPKG: Cross-platform package management system based on RPM Package Manager.
iOS
- Cydia: Frontend to a port of Advanced Packaging Tool | APT. Maintained by the Jailbreaking (iOS) | jailbreak community;.
Windows
- Windows Store: Official app store for Metro-style apps on Windows NT and Windows Phone. As of Windows 10, it distributes video games, films and music as well;
- Windows Phone Store: Former official app store for Windows Phone. Now superseded by Microsoft Store (digital) | Windows Store;
- Cygwin: Free and open-source software repository for Windows NT. Provides many Linux tools and an installation tool with package manager;
- Homebrew (package management software) | Homebrew: a port of the MacOS package manager meant for use with Windows Subsystem for Linux, using the already existing Linux port as its base;
- Ninite: Proprietary package manager for Windows NT;
- NuGet: A Microsoft-official free and open-source package manager for Microsoft Windows | Windows, available as a plugin for Microsoft Visual Studio | Visual Studio, and extendable from the command-line;
- Chocolatey: Open-source decentralized package manager for Microsoft Windows | Windows in the spirit of Yellow dog Updater Modified | Yum and Advanced Packaging Tool | apt-get. Usability wrapper for NuGet;
- Pacman (Arch Linux) | Pacman: MSYS2-ported Microsoft Windows | Windows version of the Arch Linux package manager;
- wpkg packager for Windows | wpkg: Open-source package manager that handles Debian packages on Microsoft Windows | Windows. Started as a clone of dpkg, and has many Advanced Packaging Tool | apt-get like features too;
- Zero Install (0install): Cross-platform packaging and distributions software. Uses .NET Framework on Windows NT;
IBM z/OS on IBM z/Mainframes
Source Code-Based Package Managers
The following package management systems distribute the source code of their apps. Either the user must know how to compile the packages, or they come with a script that automates the compilation process. For example, in GoboLinux a recipe file contains information on how to download, unpack, compile and install a package using its .22Compile.22 program | Compile tool. In both cases, the user must provide the computing power and time needed to compile the app, and is legally responsible for the consequences of compiling the package.
- Arch Build System | ABS is used by Arch Linux to automate binary packages building from source or even other binary archives, with automatic download and dependency checking;
- apt-build is used by distributions which use deb (file format) | deb packages, allowing automatic compiling and installation of software in a deb source repository;
- Sorcery | Sorcery is Sourcemage | Sourcemage GNU/Linux's Bash (Unix shell) | bash based package management program that automatically downloads software from their original site and compiles and installs it on the local machine;.
macOS (OS X){{anchor]] | [[macOS 2}}{{anchor]] | [[OS X 2}}
- MacPorts, formerly called DarwinPorts, originated from the OpenDarwin project;
- pkgsrc can be used to install software directly from source-code, or to use the binary packages provided by several independent vendors.
Windows
- vcpkg:<ref>
</ref> A Microsoft C++ package manager for Microsoft Windows | Windows, Linux and MacOS.
Hybrid systems
- Nix package manager: Package manager that manages software in a purely functional programming | purely functional way, featuring multi-user support, atomic upgrades and rollbacks. Allows multiple versions or variants of a software to be installed at the same time. It has support for macOS and is cross-distribution in its Linux support;
- Portage (software) | Portage and Emerge | emerge are used by Gentoo Linux, Funtoo Linux, and Sabayon Linux. It is inspired by the Pkgsrc | BSD ports system and uses text based “ebuilds” to automatically download, customize, build, and update packages from source code. It has automatic dependency checking and allows multiple versions of a software package to be installed into different “slots” on the same system. Portage also employs “use flags” to allow the user to fully customize a software build to suit the needs of their platform in an automated fashion. While source code distribution and customization is the preferred methodology, some larger packages that would take many hours to compile on a typical desktop computer are also offered as pre-compiled binaries in order to ease installation;
- Upkg: Package management and build system based on Mono (software) | Mono and XML specifications. Used by Paldo (operating system) | paldo and previously by ExTiX Linux;
- Collective Knowledge (software) | Collective Knowledge Framework is a cross-platform package and workflow framework with JSON API that can download binary packages or build them from sources for Linux, Microsoft Windows | Windows, MacOS and Android (operating system) | Android platforms.<ref>
</ref>
Meta package managers
The following unify package management for several or all Linux and sometimes Unix variants. These, too, are based on the concept of a recipe file.
- AppImage (previously klik and PortableLinuxApps) aims to provide an easy way to get software packages for most major distributions without the dependency problems so common in many other package formats.
- Zero Install installs each package into its own directory and uses environment variables to let each program find its libraries. Package and dependency information is downloaded directly from the software authors' pages in an XML format, similar to an RSS feed.
- PackageKit is a set of utilities and libraries for creating applications that can manage packages across multiple package managers using back-ends to call the correct program.
Game package managers
Package management systems geared toward developing and distributing video games.
- Steam (service) | Steam: A cross-platform video game distribution, licensing and social gameplay platform, developed and maintained by Valve Corporation | Valve. Used to shop for, download, install, update, uninstall and back up video games. Works on Windows NT, OS X and Linux;
- Uplay: A cross-platform video game distribution, licensing and social gameplay platform, developed and maintained by Ubisoft. Used to shop for, download, install and update video games. Works on Windows NT and Windows Phone, as well as PlayStation 3, PlayStation 4, Xbox 360, Xbox One, Wii U, iOS and Android (operating system) | Android.
- Xbox Live: A cross-platform video game distribution platform by Microsoft. Works on Windows NT, Windows Phone and Xbox. Initially called Games for Windows – Live on Windows 7 and earlier. On Windows 10, the distribution function is taken over by Microsoft Store (digital) | Windows Store;
Proprietary software systems
A wide variety of package management systems are in common use today by proprietary software operating systems, handling the installation of both proprietary and free packages.
- Software Distributor is the HP-UX package manager.
Application-level package managers
- Bitnami: a library of installers or software packages for web applications;
- CocoaPods: a dependency manager for Swift (programming language) | Swift and Objective-C Cocoa (API) | Cocoa projects;
- Conda (package manager) | Conda: a package manager for open data science platform of the Python (programming language) | Python and R (programming language) | R;
- Docker (software) | Docker: Docker, a system for managing OS-level virtualization | containers, serves as a package manager for deploying containerized applications;
- Enthought Canopy: a package manager for Python (programming language) | Python scientific and analytic computing distribution and analysis environment;
- Gradle: a build system and package manager for Groovy programming language | Groovy and other JVM languages, and also C++;
- Apache Ivy | Ivy: a package manager for Java (programming language) | Java, integrated into the Apache Ant | Ant build tool, also used by SBT (software) | sbt;
- NuGet: the package manager for the Microsoft development platform including .NET Framework and Xamarin;
- pip (package manager) | pip: a package manager for Python (programming language) | Python and the Python Package Index | PyPI programming library;
- Sbt (software) | sbt: a build tool for Scala (programming language) | Scala, uses Apache Ivy | Ivy for dependency management;
See also
Software package management systems
The main article for this category is Package manager.
See also: Category of Installation software
Subcategories:
This category has the following 7 subcategories, out of 7 total.
- Free package management systems (1 C, 53 P)
- Linux PMS graphical front-ends (2 C, 8 P)
- Uninstallers for macOS (4 P)
- Unix package management-related software (1 C, 13 P)
Pages in category “Package management systems”
The following 18 pages are in this category, out of 18 total. This list may not reflect recent changes.
A
C
D
L
P
S
U
Y
Categories: Operating system technologySoftware distributionInstallation softwareManagement systems Hidden categories: Commons category link is on Wikidata