Package Management Cheatsheet | Main distributions | The first table lists package management tasks in the four most popular distribution groups - Debian (including Ubuntu, Linux Mint, elementary OS, Zorin OS and other Debian derivatives), openSUSE, Fedora (including Red Hat Enterprise Linux, CentOS, Scientific Linux and other Fedora-based distributions), and Mageia and OpenMandriva. In Fedora-based distribution the yum package manager is set to be replaced with dnf at some point in 2015 (starting with Fedora 22), but it looks like most of the dnf package management commands will remain mostly identical to the yum commands (the exceptions being "localinstall" which is not yet implemented in dnf, and "update" which has been deprecated in favour of "upgrade"). Please note: current versions of Ubuntu use apt to manipulate deb packages. However, experimental versions of Ubuntu use the new snap package manager.
Task | apt (deb) Debian, Ubuntu | zypp (rpm) openSUSE | yum/dnf (rpm) Fedora, CentOS | urpmi (rpm) Mandriva, Mageia | Managing software | | | | | Install new software from package repository | apt-get install pkg | zypper install pkg | yum install pkg | urpmi pkg | Install new software from package file | dpkg -i pkg | zypper install pkg | yum localinstall pkg | urpmi pkg | Update existing software | apt-get install pkg | zypper update -t package pkg | yum update pkg | urpmi pkg | Remove unwanted software | apt-get remove pkg | zypper remove pkg | yum erase pkg | urpme pkg | Updating the system | | | | | Update package list | apt-get update aptitude update | zypper refresh | yum check-update | urpmi.update -a | Update system | apt-get upgrade aptitude safe-upgrade | zypper update | yum update | urpmi --auto-select | Searching for packages | | | | | Search by package name | apt-cache search pkg | zypper search pkg | yum list pkg | urpmq pkg | Search by pattern | apt-cache search pattern | zypper search -t pattern pattern | yum search pattern | urpmq --fuzzy pkg | Search by file name | apt-file search path | zypper wp file | yum provides file | urpmf file | List installed packages | dpkg -l | zypper search -is | rpm -qa | rpm -qa | Configuring access to software repositories | | | | | List repositories | cat /etc/apt/sources.list | zypper repos | yum repolist | urpmq --list-media | Add repository | (edit /etc/apt/sources.list) | zypper addrepo path name | (add repo to /etc/yum.repos.d/) | urpmi.addmedia name path | Remove repository | (edit /etc/apt/sources.list) | zypper removerepo name | (remove repo from /etc/yum.repos.d/) | urpmi.removemedia media | | | | Slackware and Slackware Based Distributions | The table below lists package management utilities found in Slackware Linux and other Slackware-based distributions. As stated by Patrick Volkerding on several occasions, Slackware is unlikely to ever have any advanced (i.e. dependency-resolving) package management tool, so all installation, upgrade and removal tasks continue to be performed with pkgtools, a set of very simple scripts that haven't changed much in years. Nevertheless, slackpkg, an advanced package management tool which for years had been relegated to the unsupported "extra" repository, was finally made part of Slackware Linux 12.2. It's worth noting that some popular Slackware derivatives, such as VectorLinux, have standardised on slapt-get, another third-party utility imitating the behaviour of Debian's APT, while Zenwalk Linux has introduced its own package management tool called netpkg.
Task | pkgtools Slackware | slackpkg Slackware | slapt-get Vector | netpkg Zenwalk | Managing software | | | | | Install new software from package repository | -- | slackpkg install pkg | slapt-get --install pkg | netpkg pkg | Install new software from package file | installpkg pkg | slackpkg install pkg | slapt-get --install pkg | netpkg pkg | Update existing software | upgradepkg pkg | slackpkg upgrade pkg | slapt-get --install pkg | netpkg pkg | Remove unwanted software | removepkg pkg | slackpkg remove pkg | slapt-get --remove pkg | netpkg remove pkg | Updating the system | | | | | Update package list | -- | slackpkg update | slapt-get --update | (automatic) | Update system | -- | slackpkg upgrade-all | slapt-get --upgrade | netpkg upgrade | Searching for packages | | | | | Search by package name | -- | slackpkg search pkg | slapt-get --search pkg | netpkg pkg repo | Search by pattern | -- | slackpkg search pattern | slapt-get --search pattern | netpkg list | grep pattern | Search by file name | -- | -- | -- | netpkg file repo | List installed packages | ls /var/log/packages/ | ls /var/log/packages/ | slapt-get --installed | netpk list I | Configuring access to software repositories | | | | | List repositories | -- | cat /etc/slackpkg/mirrors | cat /etc/slapt-get/slapt-getrc | netpkg mirror | Add repository | -- | (edit /etc/slackpkg/mirrors) | (edit /etc/slapt-get/slapt-getrc) | (edit /etc/netpkg.conf) | Remove repository | -- | (edit /etc/slackpkg/mirrors) | (edit /etc/slapt-get/slapt-getrc) | (edit /etc/netpkg.conf) | | | | Independent Linux Distributions | In the next group we have a few (mostly) independent distributions that have been gaining popularity in recent years. Sabayon Linux, although derived from Gentoo, has introduced its own command-line package management utility called equo. Arch Linux's Pacman has been around for a long time and it's often considered one of the fastest package management utilities around. Conary, developed by rPath and popularised by Foresight Linux, is a completely new approach to package management, created by well-known ex-Red Hat engineers with many years of package management experience. In contrast, PiSi, originally developed by Pardus Linux, is a relatively new utility.
Task | equo Sabayon | pacman Arch | conary rPath, Foresight | apk Alpine | Managing software | | | | | Install new software from package repository | equo install pkg | pacman -S pkg | conary update pkg | apk add pkg | Install new software from package file | equo install pkg | pacman -U pkg | conary update pkg | apk add --force pkg | Update existing software | equo install pkg | pacman -S pkg | conary update pkg | apk add --upgrade pkg | Remove unwanted software | equo remove pkg | pacman -R pkg | conary erase pkg | apk del pkg | Updating the system | | | | | Update package list | equo update | pacman -Sy | | apk update | Update system | equo upgrade | pacman -Su | conary updateall | apk upgrade | Searching for packages | | | | | Search by package name | equo match pkg | pacman -Ss pkg | conary query pkg | apk search pkg | Search by pattern | equo search pattern | pacman -Ss pattern | conary query pkg | apk search pattern | Search by file name | equo belongs file | pacman -Qo file | conary query --path path | -- | List installed packages | equo q list installed | pacman -Q | conary query | apk info | Configuring access to software repositories | | | | | List repositories | equo repoinfo | cat /etc/pacman.conf | | cat /etc/apk/repositories | Add repository | | (edit /etc/pacman.conf) | | setup-apkrepos | Remove repository | | (edit /etc/pacman.conf) | | (edit /etc/apk/repositories) | | | | Distribution Agnostic Package Management | Besides standard package management utilities that most distributions use as part of their systems, there are also some distro-agnostic ones that have been deployed with various levels of success in certain distributions. Smart, originally developed by Conectiva, hasn't been in the news lately, but some users seem to prefer it over Mandriva's urpmi or openSUSE's zypper (it also supports Debian and Slackware-based systems). More recently it is Fedora's PackageKit that has been gaining momentum as a way to manage packages across distributions and architectures. Now included in many other distributions, PackageKit's pkgcon command-line utility is effectively a unified front-end to the native package management tools of Fedora, Ubuntu, openSUSE, Mandriva and other distributions.
Task | smart Mandriva, openSUSE | pkgcon Fedora, Ubuntu, openSUSE, Mandriva | Managing software | | | Install new software from package repository | smart install pkg | pkcon install pkg | Install new software from package file | smart install pkg | pkcon install-file pkg | Update existing software | smart install pkg | pkcon update pkg | Remove unwanted software | smart remove pkg | pkcon remove pkg | Updating the system | | | Update package list | smart update | pkcon refresh | Update system | smart upgrade | pkcon upgrade | Searching for packages | | | Search by package name | smart search pkg | pkcon search name pkg | Search by pattern | smart search pattern | pkcon search details pattern | Search by file name | smart query file | pkcon what-provides file | List installed packages | smart query --installed | pkcon search name pkg | grep Installed | Configuring access to software repositories | | | List repositories | smart channel --show | pkcon repo-list | Add repository | smart channel --add name path | | Remove repository | smart channel --remove name | | | | | Source Based Distributions | Next, a table for source-based distributions. Gentoo's Portage is well-documented and widely used, but other distributions that are designed to be built from scratch don't often feature in the Linux media, so their package management systems are not particularly well-known. Sorcerer, which existed even before Gentoo Linux was conceived, uses Bash scripts to "cast spells" or download, install and compile packages. Sorcerer was later forked into Lunar Linux and Source Mage GNU/Linux, both of which are included in the table below. Unfortunately, Sorcerer doesn't offer much in terms of online documentation so it has been omitted for now.
Task | portage Gentoo | lunar Lunar | sorcery Source Mage | Managing software | | | | Install new software from package repository | emerge pkg | lin pkg | cast pkg | Install new software from package file | | | | Update existing software | emerge pkg | lin pkg | cast pkg | Remove unwanted software | emerge -aC pkg | lrm pkg | dispel pkg | Updating the system | | | | Update package list | emerge --sync | lin moonbase | scribe update | Update system | emerge -NuDa world | lunar update | sorcery upgrade | Searching for packages | | | | Search by package name | emerge --search pkg | lvu search pkg | gaze search -name pkg | Search by pattern | emerge --search pattern | lvu search pattern | gaze search pattern | Search by file name | equery belongs pkg | | gaze from file | List installed packages | qlist -I | lvu installed | gaze installed | Configuring access to software repositories | | | | List repositories | layman -L | -- | scribe index | Add repository | layman -a repo | -- | scribe add repo | Remove repository | layman -d repo | -- | scribe remove repo | | | | Nix OS (nix), Void (xbps) and Ubuntu (snap) | Some distributions, e.g. NixOS, Void and Ubuntu have been developing their own binary package management systems with some interesting and innovative features. Here is a summary of useful commands as used by these projects for managing packages.
Task | nix NixOS | xbps Void | snap Ubuntu | Managing software | | | | Install new software from package repository | nix-env -i pkg | xbps-install pkg | snap install pkg | Install new software from package file | -- | -- | -- | Update existing software | nix-env -u pkg | xbps-install -u pkg | snap refresh pkg | Remove unwanted software | nix-env -e pkg | xbps-remove pkg | snap remove pkg | Updating the system | | | | Update package list | nix-channel --update | xbps-install -S | -- | Update system | nix-env -u | xbps-install -u | -- | Searching for packages | | | | Search by package name | nix-env -qa pkg | xbps-query -Rs pkg | snap find pkg | Search by pattern | nix-env -qa pattern | xbps-query -Rs pattern | snap find | grep pattern | Search by file name | -- | xbps-query -o file | -- | List installed packages | nix-env -q | xbps-query -l | snap list | Configuring access to software repositories | | | | List repositories | nix-channel --list | xbps-query -L | -- | Add repository | nix-channel --add url name | (add to /etc/xbps/repo.d/ or /usr/share/xbps/repo.d/) | -- | Remove repository | nix-channel --removename | (edit /etc/xbps/repo.d/and /usr/share/xbps/repo.d/) | -- | | | | FreeBSD | Finally, a table for FreeBSD, a popular operating system offering both binary and source package management.
Task | packages FreeBSD < 10.0 | packages FreeBSD 10.0+ | ports FreeBSD | Managing software | | | | Install new software from package repository | pkg_add -r package | pkg install package | cd port_dir && make && make install | Install new software from package file | pkg_add path_to_package | pkg add path_to_package | -- | Update existing software | pkg_add path_to_package | pkg install path_to_package | portupgrade -R pkg | Remove unwanted software | pkg_delete pkg | pkg remove pkg | pkg_delete pkg | Updating the system | freebsd-update fetch install | freebsd-update fetch install | portsnap fetch install | Update package list | | pkg update | csup -L 2 -h cvsup.FreeBSD.org path_to_supfile portsnap update | Update system | | pkg upgrade | portupgrade -a portmanager -u portmaster -a | Searching for packages | | | | Search by package name | | pkg search package | cd /usr/ports && make search pkg | Search by pattern | | pkg search pattern | cd /usr/ports && make search pattern | Search by file name | | | | List installed packages | pkg_info | pkg info | pkg_info | Configuring access to software repositories | | | | List repositories | -- | -- | -- | Add repository | -- | -- | -- | Remove repository | -- | -- | -- | | | | Copyright © 2017 DistroWatch.com.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this copyright notice is preserved.
| |
|