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, Solus, Fedora (including Red Hat Enterprise Linux, CentOS, Scientific Linux and other Fedora-based distributions), Mageia, OpenMandriva, and FreeBSD. We also cover distributions such as Slackware, Alpine Linux, Arch Linux, Gentoo, NixOS, and Void in the tables below. 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 |
dnf install pkg |
urpmi pkg |
Install new software from package file |
dpkg -i pkg |
zypper install pkg |
dnf localinstall pkg |
urpmi pkg |
Update existing software |
apt-get install pkg |
zypper update -t package pkg |
dnf update pkg |
urpmi pkg |
Remove unwanted software |
apt-get remove pkg |
zypper remove pkg |
dnf erase pkg |
urpme pkg |
Updating the system |
|
|
|
|
Update package list |
apt-get update aptitude update |
zypper refresh |
dnf check-update |
urpmi.update -a |
Update system |
apt-get upgrade aptitude safe-upgrade |
zypper update |
dnf update |
urpmi --auto-select |
Searching for packages |
|
|
|
|
Search by package name |
apt-cache search pkg |
zypper search pkg |
dnf list pkg |
urpmq pkg |
Search by pattern |
apt-cache search pattern |
zypper search -t pattern pattern |
dnf search pattern |
urpmq --fuzzy pkg |
Search by file name |
apt-file search path |
zypper wp file |
dnf 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 |
dnf 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. NuTyX developed its own package management utility called cards. Arch Linux's Pacman has been around for a long time and it's often considered one of the fastest package management utilities around. PiSi, originally developed by Pardus Linux, is a relatively new utility which has been reworked into the eopkg utility, used by Solus.
Task |
cards NuTyX |
pacman Arch |
eopkg Solus |
apk Alpine |
Managing software |
|
|
|
|
Install new software from package repository |
cards install pkg |
pacman -S pkg |
eopkg install pkg |
apk add pkg |
Install new software from package file |
pkgadd pkg |
pacman -U pkg |
-- |
apk add --force pkg |
Update existing software |
cards upgrade |
pacman -S pkg |
eopkg upgrade pkg |
apk add --upgrade pkg |
Remove unwanted software |
cards remove pkg |
pacman -R pkg |
eopkg remove pkg |
apk del pkg |
Updating the system |
|
|
|
|
Update package list |
cards sync |
pacman -Sy |
|
apk update |
Update system |
cards upgrade |
pacman -Su |
eopkg upgrade |
apk upgrade |
Searching for packages |
|
|
|
|
Search by package name |
cards search pkg |
pacman -Ss pkg |
eopkg search pkg |
apk search pkg |
Search by pattern |
cards search pattern |
pacman -Ss pattern |
eopkg search pattern |
apk search pattern |
Search by file name |
-- |
pacman -Qo file |
-- |
-- |
List installed packages |
cards list |
pacman -Q |
-- |
apk info |
Configuring access to software repositories |
|
|
|
|
List repositories |
cat /etc/cards.conf | grep url |
cat /etc/pacman.conf |
eopkg list-repo |
cat /etc/apk/repositories |
Add repository |
|
(edit /etc/pacman.conf) |
eopkg add-repo Name URL |
setup-apkrepos |
Remove repository |
|
(edit /etc/pacman.conf) |
eopkg remove-repo Name |
(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 -Iv |
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 --remove
name |
(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 © 2024 DistroWatch.com.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this copyright notice is preserved.
|
|
TUXEDO |
TUXEDO Computers - Linux Hardware in a tailor made suite Choose from a wide range of laptops and PCs in various sizes and shapes at TUXEDOComputers.com. Every machine comes pre-installed and ready-to-run with Linux. Full 24 months of warranty and lifetime support included!
Learn more about our full service package and all benefits from buying at TUXEDO.
|
Star Labs |
Star Labs - Laptops built for Linux.
View our range including the highly anticipated StarFighter. Available with coreboot open-source firmware and a choice of Ubuntu, elementary, Manjaro and more. Visit Star Labs for information, to buy and get support.
|
|