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).
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
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 <email@example.com> 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.