Compare the Top Package Managers for Linux as of September 2025

What are Package Managers for Linux?

Package managers are software tools that automate the process of installing, upgrading, configuring, and removing software packages. They simplify dependency management by ensuring that required libraries and modules are downloaded and updated correctly. Many package managers connect to online repositories, allowing developers and system administrators to access large ecosystems of software quickly. By standardizing installations and updates, they reduce errors, improve consistency, and save time in both development and production environments. Package managers are widely used across programming languages, operating systems, and frameworks to streamline software distribution and maintenance. Compare and read user reviews of the best Package Managers for Linux currently available using the table below. This list is updated regularly.

  • 1
    Homebrew

    Homebrew

    Homebrew

    The missing package manager for macOS (or Linux). The script explains what it will do and then pauses before it does it. Homebrew installs the stuff you need that Apple (or your Linux system) didn’t. Homebrew installs packages to their own directory and then symlinks their files into /usr/local (on macOS Intel). Homebrew won’t install files outside its prefix and you can place a Homebrew installation wherever you like. Trivially create your own Homebrew packages. It’s all Git and Ruby underneath, so hack away with the knowledge that you can easily revert your modifications and merge upstream updates. Homebrew formulae are simple Ruby scripts. Homebrew complements macOS (or your Linux system). Install your RubyGems with gem and their dependencies with brew. Homebrew Cask installs macOS apps, fonts and plugins and other non-open source software. Making a cask is as simple as creating a formula.
    Starting Price: Free
  • 2
    Helm

    Helm

    The Linux Foundation

    Helm helps you manage Kubernetes applications, Helm charts help you define, install, and upgrade even the most complex Kubernetes application. Charts are easy to create, version, share, and publish, so start using Helm and stop the copy-and-paste. Charts describe even the most complex apps, provide repeatable application installation, and serve as a single point of authority. Take the pain out of updates with in-place upgrades and custom hooks. Charts are easy to version, share, and host on public or private servers. Use helm rollback to roll back to an older version of a release with ease. Helm uses a packaging format called charts. A chart is a collection of files that describe a related set of Kubernetes resources. A single chart might be used to deploy something simple, like a memcached pod, or something complex, like a full web app stack with HTTP servers, databases, caches, and so on.
    Starting Price: Free
  • 3
    NuGet

    NuGet

    NuGet

    NuGet is the package manager for .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers. New to NuGet? Start with a walkthrough showing how NuGet powers your .NET development. Browse the thousands of packages that developers like you have created and shared with the .NET community. Want to make your first NuGet package and share it with the community? Start with our walkthrough! The command-line tool, nuget.exe, builds and runs under Mono 3.2+ and can create packages in Mono. Although nuget.exe works fully on Windows, there are known issues with Linux and OS X. The primary source for learning about a package is its listing page on NuGet (or another private feed). Each package page on NuGet includes a description of the package, its version history, and usage statistics.
    Starting Price: Free
  • 4
    Yarn

    Yarn

    Yarn

    Yarn is a package manager which doubles down as project manager. Whether you work on one-shot projects or large monorepos, as a hobbyist or an enterprise user, we've got you covered. Split your project into sub-components kept within a single repository. Yarn guarantees that an install that works now will continue to work the same way in the future. Yarn cannot solve all your problems, but it can be the foundation for others to do it. We believe in challenging the status quo. What should the ideal developer experience be like? Yarn is an independent open-source project tied to no company. Your support makes us thrive. Yarn already knows everything there is to know about your dependency tree, it even installs it on the disk for you. So, why is it up to Node to find where your packages are? Instead, it should be the package manager's job to inform the interpreter about the location of the packages on the disk and manage any dependencies between packages and even versions of packages.
    Starting Price: Free
  • 5
    Zypper
    Zypper is a command-line package manager for installing, updating, and removing packages. It can also be used to manage repositories. Zypper works and behaves as a regular command-line tool. It features subcommands, arguments, and options that can be used to perform specific tasks. Zypper offers several benefits compared to graphical package managers. Being a command-line tool, Zypper is faster in use and light on resources. Zypper actions can be scripted. Zypper can be used on systems that do not have graphical desktop environments. This makes it suitable for use with servers and remote machines. The simplest way to execute Zypper is to type its name, followed by a command. Additionally, you can choose from one or more global options by typing them immediately before the command. Some commands require one or more arguments. Executing subcommands in the Zypper shell, and using global Zypper options are not supported.
    Starting Price: Free
  • 6
    eoPKG

    eoPKG

    eoPKG

    eoPKG is the package manager for the Solus operating system. It is used to manage installed software packages, search for available software, and to apply updates to the system. Change the system root for eoPKG commands. Set username used when connecting to Basic-Auth repositories. Set password used when connecting to Basic-Auth repositories. Enable full debug information and backtraces. Keep bandwidth usage under the specified (numeric) KBs. Disable the use of ANSI escape sequences for colorization by eoPKG. On success, 0 is returned. A non-zero return code signals a failure.
    Starting Price: Free
  • 7
    APT

    APT

    Distro Tracker Developers

    This software lets you follow the evolution of a Debian-based distribution both with email updates and with a comprehensive web interface. Having all the information about packages conveniently available in a single place is particularly interesting for package maintainers, contributors, advanced users, etc.
    Starting Price: Free
  • 8
    Nix

    Nix

    NixOS

    Nix is a tool that takes a unique approach to package management and system configuration. Learn how to make reproducible, declarative, and reliable systems. Nix builds packages in isolation from each other. This ensures that they are reproducible and don't have undeclared dependencies, so if a package works on one machine, it will also work on another. Nix makes it trivial to share development and build environments for your projects, regardless of what programming languages and tools you’re using. Nix ensures that installing or upgrading one package cannot break other packages. It allows you to roll back to previous versions and ensures that no package is in an inconsistent state during an upgrade. Nix is a purely functional package manager. This means that it treats packages like values in purely functional programming languages such as Haskell, they are built by functions that don’t have side effects, and they never change after they have been built.
    Starting Price: Free
  • 9
    Pacman

    Pacman

    Pacman

    Pacman is a utility which manages software packages in Linux. It uses simple compressed files as a package format, and maintains a text-based package database (more of a hierarchy), just in case some hand tweaking is necessary. Pacman does not strive to "do everything." It will add, remove and upgrade packages in the system, and it will allow you to query the package database for installed packages, files and owners. It also attempts to handle dependencies automatically and can download packages from a remote server. Version 2.0 of Pacman introduced the ability to sync packages (the - sync option) with a master server through the use of package databases. Prior to this, packages would have to be installed manually using the --add and - upgrade operations.
    Starting Price: Free
  • 10
    Snapcraft

    Snapcraft

    Snapcraft

    This is the code repository for snapd, the background service that manages and maintains installed snaps. Snaps are app packages for desktop, cloud, and IoT that update automatically. Easy to install, secure, cross-platform, and dependency-free. They're being used on millions of Linux systems every day. Alongside its various service and management functions, snapd provides the snap command that's used to install and remove snaps and interact with the wider snap ecosystem, implements the confinement policies that isolate snaps from the base system and from each other, governs the interfaces that allow snaps to access specific system resources outside of their confinement. If you're looking for something to install, such as Spotify or Visual Studio Code, take a look at the Snap Store. And if you want to build your own snaps, start with our creating a snap documentation.
    Starting Price: Free
  • 11
    Aptitude

    Aptitude

    Debian

    Aptitude is an Ncurses and command-line based front-end to numerous Apt libraries, which are also used by Apt, the default Debian package manager. Aptitude is text-based and run from a terminal. A mutt-like syntax for matching packages in a flexible manner. Mark packages as "automatically installed" or "manually installed" so that packages can be auto-removed when no longer required (feature available in Apt, too, since quite a few Debian releases). Preview of actions about to be taken with different colors marking different actions. The ability to interactively retrieve and display the Debian changelog of all available official packages. Score-based dependency resolver which is more suitable for interactive dependency resolution with additional hints from the user like "I don't want that part of the solution but keep that other part of the solution for your next try". Apt's dependency resolver on the other hand is optimized for good "one-shot" solutions.
    Starting Price: Free
  • 12
    Synaptic

    Synaptic

    Synaptic

    Synaptic is a graphical package management program for apt. It provides the same features as the apt-get command-line utility with a GUI front-end based on Gtk+. Install, remove, upgrade and downgrade single and multiple packages. Upgrade your whole system. Manage package repositories (sources.list). Find packages by name, description, and several other attributes. Select packages by status, section, name, or a custom filter. Sort packages by name, status, size, or version. Browse all available online documentation related to a package. Download the latest changelog of a package. Lock packages to the current version. Force the installation of a specific package version. Undo/Redo selections. Built-in terminal emulator for the package manager. Debian/Ubuntu only, configure packages through the debconf system. Debian/Ubuntu only, Xapain-based fast search (thanks to Enrico Zini).
    Starting Price: Free
  • 13
    Portage

    Portage

    Portage

    The Portage Development Project works to provide a continuously expanding and developing tool for the management and installation of packages. The developers work on providing a coherent system that is as trouble free as possible (backwards compatible, automated, and simple). Bugs are tracked and fixed from the Gentoo bug tracker and developer-developer correspondence is maintained on the gentoo-portage-dev mailing list. Another communication channel is the #gentoo-portage (webchat) IRC channel on the Libera.Chat network. The goal of the Portage project is to provide a seamless integration of developer and user tools to aid the growth and maintenance of Gentoo packages. This means we work not only on Portage itself, but also on associated tools, and on ensuring that our APIs are useful to other tools.
    Starting Price: Free
  • 14
    pkgsrc

    pkgsrc

    pkgsrc

    pkgsrc is a framework for managing third-party software on UNIX-like systems, currently containing over 17,900 packages. It is the default package manager of NetBSD and SmartOS and can be used to enable freely available software to be built easily on a large number of other UNIX-like platforms. The binary packages that are produced by pkgsrc can be used without having to compile anything from the source. It can be easily used to complement the software on an existing system. pkgsrc is very versatile and configurable, supporting building packages for an arbitrary installation prefix, allowing multiple branches to coexist on one machine, a build options framework, and a compiler transformation framework, among other advanced features. Unprivileged use and installation are also supported. NetBSD already contains the necessary tools for using pkgsrc; on other platforms, you need to bootstrap pkgsrc to get the package management tools installed.
    Starting Price: Free
  • 15
    Rudix

    Rudix

    Rudix

    Rudix is a build system target on macOS (formerly known as Mac OS X) with minor support to OpenBSD, FreeBSD, NetBSD, and Linux. The build system (also called "ports") provides step-by-step instructions for building third-party software, entirely from source code. Rudix provides more than a pure ports framework, it comes with packages, and precompiled software bundled up in a nice format (files *.pkg) for easy installation on your Mac. If you want to collaborate on the project, visit us at GitHub/rudix-mac or at our mirror at GitLab/rudix. Use the GitHub issue tracker to submit bugs or request features. Similar projects or alternatives to Rudix are Fink, MacPorts, pkgsrc, and Homebrew. Packages are compiled and tested on macOS Big Sur (Version 11, Intel only!), Catalina (Version 10.15) and OS X El Capitan (Version 10.11). Every package is self-contained and has everything it needs to work. The binaries, libraries, and documentation will be installed under /usr/local/.
    Starting Price: Free
  • 16
    PackageManagement (OneGet)

    PackageManagement (OneGet)

    PackageManagement (OneGet)

    This module is currently not in development. We are no longer accepting any pull requests to this repository. OneGet is in a stable state and is expected to receive only high-priority bug fixes from Microsoft in the future. If you have a question or are seeing an unexpected behavior from this module please open up an issue in this repository. PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases.
    Starting Price: Free
  • 17
    Zero Install

    Zero Install

    Zero Install

    A decentralized cross-platform software installation system. Works on Linux, Windows and macOS. Fully open-source. Run apps with a single click. Run applications without having to install them first. Control everything from a command line or graphical interface. You control your own computer. You don't have to guess what happens during installation. Mix and match stable and experimental apps on a single system. Anyone can distribute software. Create one package that works on multiple platforms. Publish on any static web host; no central point of control. With dependency handling and automatic updates. Security is central. Installing an app doesn't grant it administrator access. Digital signatures are always checked before new software is run. Apps can share libraries without having to trust each other. Adds automatic self-updating, staged rollouts and various improvements to desktop integration.
    Starting Price: Free
  • 18
    YUM

    YUM

    Red Hat

    Installing, patching, and removing software packages on Linux machines is one of the common tasks every sysadmin has to do. Here is how to get started with Linux package management in Linux Red Hat-based distributions (distros). Package management is a method of installing, updating, removing, and keeping track of software updates from specific repositories (repos) in the Linux system. Linux distros often use different package management tools. Red Hat-based distros use RPM (RPM Package Manager) and YUM/DNF (Yellow Dog Updater, Modified/Dandified YUM). YUM is the primary package management tool for installing, updating, removing and managing software packages in Red Hat Enterprise Linux. YUM performs dependency resolution when installing, updating, and removing software packages. YUM can manage packages from installed repositories in the system or from .rpm packages. There are many options and commands available to use with YUM.
    Starting Price: Free
  • 19
    RPM Package Manager

    RPM Package Manager

    RPM Package Manager

    The RPM Package Manager (RPM) is a powerful package management system capable of building computer software from the source into easily distributable packages; installing, updating, and uninstalling packaged software; querying detailed information about the packaged software, whether installed or not; and verifying the integrity of packaged software and resulting software installation. The package’s metadata is stored in the RPM header. The header is a binary data structure that stores single pieces of data in tags. Each tag has a pre-defined meaning and data type. These are not stored in the header itself but need to be known by the code reading the header. In the header, the tags are only referred to by their number. Each tag is either of a plain scalar type or is an array of one of these types. While not enforced by the type system the RPM code assumes that tags belonging together have the same number of entries.
    Starting Price: Free
  • 20
    Fortran Package Manager
    Package manager and build system for Fortran. There are already many packages available for use with fpm, providing an easily accessible and rich ecosystem of general-purpose and high-performance code. Fortran Package Manager (fpm) is a package manager and build system for Fortran. Its key goal is to improve the user experience of Fortran programmers. It does so by making it easier to build your Fortran program or library, run the executables, tests, and examples, and distribute it as a dependency to other Fortran projects. Fpm’s user interface is modeled after Rust’s Cargo. Its long-term vision is to nurture and grow the ecosystem of modern Fortran applications and libraries. The Fortran package manager has a plugin system that allows it to easily extend its functionality. The fpm-search project is a plugin to query the package registry. Since it is built with fpm we can easily install it on our system.
    Starting Price: Free
  • 21
    fpm

    fpm

    fpm

    fpm is a tool that lets you easily create packages for Debian, Ubuntu, Fedora, CentOS, RHEL, Arch Linux, FreeBSD, macOS, and more! fpm isn’t a new packaging system, it’s a tool to help you make packages for existing systems with less effort. It does this by offering a command-line interface to allow you to create packages easily. FPM is written in ruby and can be installed using gem. For some package formats (like rpm and snap), you will need certain packages installed to build them. Some package formats require other tools to be installed on your machine to be built; especially if you are building a package for another operating system/distribution. FPM takes your program and builds packages that can be installed easily on various operating systems. It can take any nodejs package, ruby gem, or even a python package and turn it into a deb, rpm, pacman, etc. package.
    Starting Price: Free
  • 22
    Cargo

    Cargo

    Cargo

    Cargo is the Rust package manager. Cargo downloads your Rust package's dependencies, compiles your packages, makes distributable packages, and uploads them to crates.io, the Rust community’s package registry. You can contribute to this book on GitHub. To get started with Cargo, install Cargo (and Rust) and set up your first crate. The commands will let you interact with Cargo using its command-line interface. A Rust crate is either a library or an executable program, referred to as either a library crate or a binary crate, respectively. Loosely, the term crate may refer to either the source code of the target or to the compiled artifact that the target produces. It may also refer to a compressed package fetched from a registry. Your crates can depend on other libraries from crates.io or other registries, git repositories, or subdirectories on your local file system. You can also temporarily override the location of a dependency.
    Starting Price: Free
  • 23
    AnyTree
    Introducing AnyTree — the first software deployment system secured by the blockchain. On AnyTree, whatever apps developers distribute or use, are delivered exactly as they are supposed to be. The Software Supply Chain is a high-impact area. Yet there exists a distinctive lack of secure, trustless, verifiable, and transparent delivery of source code/binaries to developers and users in all software fields. Storing your code on a git means it has an owner, a single point of control, which leads to security vulnerabilities. Currently, there is no industrial solution available that is not centralized and thus not dependent on the decisions of a few actors. The main way in which GOSH solves this issue is by allowing developers to build consensus around their code, so the more code is written, the more secure it becomes.
    Starting Price: Free
  • 24
    DPKG

    DPKG

    Ubuntu

    DPKG is a tool to install, build, remove and manage Debian packages. The primary and more user-friendly front-end for DPKG is aptitude. DPKG itself is controlled entirely via command line parameters, which consist of exactly one action and zero or more options. The action parameter tells DPKG what to do and options control the behavior of the action in some way. DPKG can also be used as a front-end to DPKG-deb(1) and DPKG-query. The list of supported actions can be found later on in the actions section. If any such action is encountered DPKG just runs DPKG-deb or DPKG-query with the parameters given to it, but no specific options are currently passed to them, to use any such option the back-ends need to be called directly. DPKG maintains some usable information about available packages. The information is divided into three classes, states, selection states, and flags. These values are intended to be changed mainly with dselect.
    Starting Price: Free
  • 25
    Conda

    Conda

    Conda

    Package, dependency, and environment management for any language, Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, Fortran, and more. Conda is an open-source package management system and environment management system that runs on Windows, macOS, Linux, and z/OS. Conda quickly installs, runs, and updates packages and their dependencies. Conda easily creates, saves, loads, and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language. Conda as a package manager helps you find and install packages. If you need a package that requires a different version of Python, you do not need to switch to a different environment manager, because conda is also an environment manager. With just a few commands, you can set up a totally separate environment to run that different version of Python, while continuing to run your usual version of Python in your normal environment.
    Starting Price: Free
  • 26
    DNF

    DNF

    DOCS

    DNF is a software package manager that installs, updates, and removes packages on Fedora and is the successor to YUM (Yellow-Dog Updater Modified). DNF makes it easy to maintain packages by automatically checking for dependencies and determining the actions required to install packages. This method eliminates the need to manually install or update the package, and its dependencies, using the rpm command. DNF is now the default software package management tool in Fedora. Removes packages installed as dependencies that are no longer required by currently installed programs. Checks for updates, but does not download or install the packages. Provides basic information about the package including name, version, release, and description.
    Starting Price: Free
  • 27
    eAuditor Cloud

    eAuditor Cloud

    BTC Sp. z o.o.

    eAuditor Cloud is a comprehensive SaaS platform for IT asset management, monitoring, security, and data protection. With more than 20 years of experience in corporate and public sector environments, it combines proven functionality with the accessibility and scalability of the cloud. The system provides full visibility and control over the infrastructure - from automatic inventory of computers, servers, operating systems, and software to continuous monitoring of users, devices, and network activity. Advanced modules include remote management, patch installation, BitLocker encryption, SOC dashboard, and task automation. A professional DLP engine protects sensitive data in use, at rest, and in transit through classification, rules, and policies. AI support for CMD/PowerShell and ChatGPT integration help administrators save time and eliminate repetitive tasks. eAuditor Cloud grows with your business - from a free version for up to 100 devices to advanced enterprise-grade packages.
  • Previous
  • You're on page 1
  • Next