As I have to deal with both Red Hat and Debian based Linux distributions, I decided to make my own comparison cheat-sheet for the package management. It would look really nice as table where everything is side-by-side but it would not fit here in that way. Note for beginners: rpm/yum/dnf/repoquery/yumdownloader are package management tools in Red Hat based distros and apt*/dpkg* in Debian based distros. Apk is used in Alpine Linux.
HINT: If you know, what is the command in debian and want to know what is it in red-hat or vice-versa, use your browser search!
- Refresh information coming from repositories
yum clean metadata
apt-get update
apk update
Note: yum will reload package info on next run.
- Search package from available repositories by partial package name
yum list <partial package name>
apt-cache search <search string>
apk list <search string> # use leading/trailing wildcards!
- Search package from available repositories by string in information/description
yum search <search string>
apt-cache search <search string>
apk search <search string>
- Install package from repository
yum install <package name>
apt-get install <package name>
apt install <package name>
apk add <package name>
- Install package from given package file, without dependencies
rpm -ivh <rpm-file>
dpkg -i <deb-file>
Note: You will keep getting errors with Debian tools like dpkg/apt until you satisfy dependencies.
- Install package from given file and resolve dependencies
yum install <rpm-file>
dpkg -i <deb-file>; apt-get -f install
Note: yum localinstall <rpm-file> has same results
- Reinstall package, useful if you have manually deleted/changed some content
yum reinstall <package name>
- Upgrade package with new version from package file or install if it is not yet installed
rpm -Uvh <rpm-file>
- Upgrade all packages / Install all upgrades
yum update apt-get upgrade
- Upgrade specific package
yum update <package name>
- Upgrade specific package to specific version
yum upgrade-to <package name>-<version>
Note: For example yum upgrade-to wget-1.11.4-3.el5_8.2
- Remove installed package but keep configuration files
dpkg -r <package name> apt-get remove <package name>
- Remove installed packages along with all configuration files and created directories
rpm -ev <package name> yum remove <package name> dpkg -P <package name>
Note: Another word for this operation is purge
- Remove automatically installed packages (remove packages which were installed automatically to satisfy dependencies).
apt-get autoremove
To remove automatically installed dependencies with yum, use yum history to get the transaction ID and then undo/rollback the transaction. It will only remove packages and dependencies installed during one transaction.
This gives you transaction ID (column 1) # yum history list packagename This will rollback the transaction # yum history undo <ID>
- Download package from repository
apt-get download <package name> yumdownloader <package name>
Note: This is just download without installing
- Display installed package name from which specific file originated
rpm -qf <filename with full path> repoquery --plugins -f <filename with full path> dpkg -S <filename with full path>
- Display not installed package name which will provide specific file
yum provides <filename with full path> apt-file -Fl search <filename with full path>
Note: Run apt-file update first
- Display all installed packages
rpm -qa yum list installed repoquery --plugins -a --installed dpkg --list
- Display all packages available from repositories
yum list repoquery --plugins -a apt-cache pkgnames
- Display information about installed package
rpm -qi <package name> dpkg -p <package name>
- Display information about uninstalled package file
rpm -qpi <rpm-file> dpkg --info <deb-file>
- Display file lists (contents) of uninstalled package file
rpm -qpl <rpm-file> dpkg -c <deb-file>
- Display file lists (contents) of installed package (originating files)
rpm -ql <package name> dpkg -L <package name>
- Display information about package available from repository
yum info <package name> repoquery --plugins -i <package name> apt-cache showpkg <package name>
- Display file list of package available from repository
repoquery --plugins -l <package name>
- Display list of most recently installed packages with dates
rpm -qa --last
- Display package management history
yum history
Note: If history command does not exist, your yum version is too old
- Display configuration files of specific package
rpm -qc <package name>
- Display configuration files associated with specific file
rpm -qcf <filename with full path>
- Display package dependencies
rpm -qpR <rpm-file> rpm -qR <package name>
- Clean package cache only
yum clean packages
- Clean package cache, metadata and everything else
yum clean all apt-get clean
- Extract rpm / deb package contents without installing
rpm2cpio <rpm-file> |cpio -idmv dpkg -x <deb-file> <target-directory>
- Is rpm file relocatable ?
rpm -qpi <rpm-file> | grep Relocations
- Install package to different location – can be done by root and non-root user if package is relocatable and you have write rights to the specified location
rpm -Uvh --prefix /alternate/location <relocatable-rpm-file>
- Display RPM GPG key signature and ID – useful when adding channel to Spacewalk/ RHEL Satellite. Green and Blue is the signature. Blue is ID.
# gpg --quiet --with-fingerprint RPM-GPG-KEY-graylog
pub 2048R/B1606F22 2014-06-04 TORCH GmbH <packages@torch.sh>
Key fingerprint = 28AB 6EB5 7277 9C2A D196 BE22 D44C 1D8D B160 6F22
- Install rpm without GPG check
# yum --nogpgcheck install <package name>
- Install GPG key
# rpm --import <gpg-key-file>
To be continued.
If you found this useful, say thanks, click on some banners or donate, I can always use some beer money.