Chapter 13: Software management

dnf and rpm cheat sheet

The chapter on one page: what to remember, the commands to have at your fingertips, and flashcards for quick revision.

The chapter in eight sentences

Cheat sheet

rpm

CommandDoes
rpm -q NAME / -qi / -ql / -qc / -qdInstalled? Info, files, config, docs
rpm -qf /pathWhich package owns a file
rpm -qa [--last]All packages (newest first)
rpm -V NAMEVerify files against the package
rpm -K FILE.rpm, rpm -qpl FILE.rpmCheck signature; list contents
rpm --import KEYFILETrust a vendor key

dnf

CommandDoes
dnf search, info, provides "*/file"Find software
dnf install, remove, reinstall NAMEChange packages
dnf upgrade [--security], dnf check-updateUpdates
dnf history, history info ID, history undo IDReview and reverse
dnf group list, group install "NAME"Package groups
dnf needs-restarting -rIs a reboot advisable?
dnf clean all, dnf makecacheRefresh the cache

Repositories and modules

Command / fileDoes
dnf repolist [--all]Repositories
/etc/yum.repos.d/NAME.repo[id], name, baseurl, enabled, gpgcheck, gpgkey
dnf download --resolve --destdir D NAMEFetch packages and dependencies
createrepo_c DBuild the catalogue
dnf --disablerepo='*' --enablerepo=ID ...Use one repository
`dnf module listenable
/etc/dnf/modules.d/NAME.moduleThe enabled stream

Flashcards

How is a package name read?
name-version-release.architecture, for example tree-1.8.0-10.el9.x86_64.
Ask rpm about an installed package?
rpm -q NAME · rpm -qi NAME · rpm -ql NAME · rpm -qc NAME · rpm -qd NAME
Which package owns a file?
rpm -qf /path (installed) · dnf provides "*/file" (any repository)
Check a package for changed files?
rpm -V NAME
Search, show, install, remove with dnf?
dnf search · dnf info · dnf install · dnf remove
See and undo transactions?
dnf history · dnf history info ID · dnf history undo ID|last
List updates and apply security ones only?
dnf check-update · dnf upgrade --security
Where are repositories defined?
/etc/yum.repos.d/*.repo: id, name, baseurl, enabled, gpgcheck, gpgkey
Use one repository only?
dnf --disablerepo="*" --enablerepo=ID install NAME
Build a local repository?
dnf download --resolve --destdir DIR NAME · createrepo_c DIR · add a .repo file
Choose a version of a program?
dnf module list NAME · dnf module enable NAME:STREAM · dnf module reset NAME
Check a downloaded .rpm?
rpm -K FILE.rpm (digests and signatures OK)