Packager Lookup Table
This is intended as a lookup table to allow someone familiar with one package tool to figure out how to do things in another one. It's not a feature comparison per se, thought it looks like one.
It's also not intended to settle any package manager wars. After working with RPM for several years, then switching to Debian and Ubuntu, I prefer APT over RPM. But many of the perceived strengths of APT are actually more due to Debian policy than technical superiority. Prior to the advent of yum, APT was clearly superior. Post-yum, you can argue either way, though as I said I prefer APT these days.
This table is partly derived from the following:
| Command |
APT |
YUM |
RPM |
| Meaning |
Advanced Package Tool |
Yellow dog (Linux) Updater, Modified |
Red Hat Package Manager |
| File Extension |
*.deb |
*.rpm |
*.rpm |
| (Remote) Repository location config |
/etc/apt/sources.list |
/etc/yum.conf |
N/A |
| Update package index or header files from remote sources |
apt-get update (apt-list update) |
N/A (yum does this every time it's run, use -C to avoid this slow behavior) |
N/A |
| Install new packages |
apt-get install [args] |
yum install [args] |
rpm -Uvh [args] |
| Remove packages |
apt-get remove [args] |
yum remove [args] |
rpm -e [args] |
| Find packages that you can install |
apt-cache search [args] |
yum list | grep [args] |
N/A |
| Show information about a package that is not installed [1] |
apt-cache show [args] |
yum list [args] |
rpm -qip [args] |
| Show information about an installed package |
apt-cache show [args] |
yum info [args] |
rpm -qi [args] |
| List the contents (files) of a package that is not installed [1] |
dpkg -L [args] (apt-file show [args]) |
|
rpm -qlp [args] |
| List the contents (files) of an installed package |
dpkg -L [args] (apt-file show [args]) |
|
rpm -ql [args] |
| Check for upgrades |
apt-get -s upgrade apt-get -s dist-upgrade |
yum check-update |
N/A |
| Upgrade packages |
apt-get dist-upgrade |
yum update |
rpm -Uvh [args] |
| Upgrade entire system |
apt-get dist-upgrade |
yum upgrade |
N/A |
| Show the package to which a file belongs |
dpkg-query -S (apt-file search ) |
yum provides yum whatprovides |
rpm -q --whatprovides |
| Remove packages from the local cache directory |
apt-get clean |
yum clean packages |
N/A |
| Remove only obsolete packages from the local cache directory |
apt-get autoclean |
N/A |
N/A |
| Remove header files from the local cache directory, forcing a new download of same on next use |
apt-file purge |
yum clean headers |
N/A |
| Remove obsolete header files from the local cache directory |
N/A |
yum clean oldheaders |
N/A |
| Run yum clean packages and yum clean oldheaders |
N/A |
yum clean all |
N/A |
| Show stats about the package cache |
apt-cache stats |
|
|
| Show the packages a given package depends on |
apt-cache depends |
|
|
| Show other packages that depend on a given package (reverse dependency) |
apt-cache rdepends |
|
rpm -q -whatrequires [args] |
| Show information about the packages |
apt-cache showpkg [args] |
|
|
| Show the names, version and other information for all installed packages |
dpkg -l |
|
rpm -qa |
| Verify all installed packages |
debsums |
|
rpm -Va |
| Show what has been changed in a new version of a package |
apt-listchanges |
|
rpm -q -changelog [args] |
| Lists available package versions with distribution |
apt-show-versions |
|
|
| Query the package database |
dpkg-query |
|
rpm -q |
| Show the list of all the packages in the cache |
apt-cache pkgnames |
|
|
Notes:
- See the specific man pages for each command as this table only scratches the surface.
- Some of these commands may only be similar at a very high level.
- For many of the Debian commands, [args] can be a regular expression describing what you're looking for.
- [1] RPM requires that the package specified by -p exist in the local file system. In other words, you have to download it first. Apt-get and Yum do not share this requirement.
Apt Related Tools
So having said all of that, the downside to apt and friends is that apt has so many friends. The following table is a list of all the friends of apt I'm aware of. There's probably at least a few missing.
The tools in bold are frequently used by system administrators.
If this list seems absurd to you, I have to agree. It's a bit of an embarrassment of riches, to say the least. You may find one of these wrappers of interest:
| Program |
Description/Use |
| apt-cache |
APT package handling utility -- cache manipulator |
| apt-cacher |
[Not installed by default] caching proxy system for Debian package and source files [See also apt-proxy] |
| apt-cdrom |
APT CDROM management utility to add new CDs to the sources list |
| apt-config |
[Internal] APT Configuration Query program |
| apt-extracttemplates |
Utility to extract DebConf config and templates from Debian packages |
| apt-file |
APT package searching utility |
| apt-ftparchive |
Utility to generate index files |
| apt-get |
APT package handling utility -- command-line interface [use aptitude instead] |
| aptitude</td>
| Successor to apt-get, and now recommended instead of apt-get. Command line and curses "GUI" interface all in one. |
| apt-key |
APT key management utility |
| apt-listchanges |
Display change history from .deb archives |
| apt-proxy |
[Not installed by default] Debian archive proxy and partial mirror builder [See also apt-cacher] |
| apt-proxy-import |
[Not installed by default] Import packages into the apt-proxy cache |
| apt-proxy-v1tov2 |
[Not installed by default] Updates apt-proxy configuration to the new format |
| apt-sortpkgs |
Utility to sort package index files |
| debconf |
Debian configuration management system |
| debconf-apt-progress |
Install packages using debconf to display a progress bar |
| debconf-communicate |
Communicate with debconf |
| debconf-copydb |
Copy a debconf database |
| debconf-escape |
Helper when working with debconf's escape capability |
| debconf-getlang |
Extract a language from a templates file |
| debconf-get-selections |
Output the current debconf database in a format understandable by deb-conf-set-selections |
| debconf-loadtemplate |
Load template file into debconf database |
| debconf-mergetemplate |
Merge multiple debconf template files |
| debconf-set-selections |
Insert new default values into the debconf database |
| debconf-show |
Query the debconf database |
| deborphan |
[Not installed by default] Find orphaned libraries |
| dpkg |
Package maintenance system for Debian |
| dpkg-awk |
Gawk script to parse /var/lib/dpkg/{status,available} and Packages |
| dpkg-cross |
Tools for cross compiling Debian packages |
| dpkg-deb |
Debian package archive (.deb) manipulation tool |
| dpkg-dev |
Package building tools for Debian |
| dpkg-dev-el |
Emacs helpers specific to Debian development |
| dpkg-divert |
Override a package's version of a file |
| dpkg-ftp |
Ftp method for dselect |
| dpkg-multicd |
Installation methods for multiple binary CDs |
| dpkg-preconfigure |
Let packages ask questions prior to their installation |
| dpkg-query |
A tool to query the dpkg database |
| dpkg-reconfigure |
Reconfigure an already installed package |
| dpkg-repack |
Puts an unpacked .deb file back together |
| dpkg-ruby |
Ruby interface for dpkg |
| dpkg-sig |
Create and verify signatures on .deb-files |
| dpkg-split |
Debian package archive split/join tool |
| dpkg-statoverride |
Override ownership and mode of files |
| dpkg-www |
Powerful WEB based Debian package browser |
| dselect |
An older apt interface [see aptitude or synaptic] |
| localepurge |
[Not installed by default] Automagically remove unnecessary locale data |
| synaptic |
A newer apt interface (GUI) |
|