On a Red Hat family system using dnf, which command finds out which package provides the command /usr/bin/semanage, including packages that are not yet installed?

LPIC-1 Exam 101-500, objective 102. Linux installation and package management medium

Draft — not checked yet. This question was written from the published exam objectives and cites the clause it comes from, but nobody has yet read it against that clause and signed for it.

It is kept out of search results and out of mock exams until they have. Read the source below before you take the answer as settled.

The options

Not correct dnf list /usr/bin/semanage

Wrong. dnf list works on package names and globs of package names, not on file paths.

Not correct rpm -qf /usr/bin/semanage

Wrong for this requirement. rpm -qf only consults the local RPM database, so it can only answer for files that are already installed on this machine.

Correct dnf provides /usr/bin/semanage

Correct. dnf provides (also spelled whatprovides) searches repository metadata for the package supplying a given file or capability, whether or not it is installed.

Not correct dnf install /usr/bin/semanage

Wrong for the question, since it installs rather than reports — although dnf can indeed resolve a file path to its providing package and install it.

Why

The repository-aware tools (dnf, and yum before it) can answer questions about packages that are not installed, because they read repository metadata from /etc/yum.repos.d/. The rpm command only knows the local database in /var/lib/rpm. So 'dnf provides' answers 'which package would give me this file', while 'rpm -qf' answers 'which installed package put this file here'. On SUSE, the equivalent is 'zypper what-provides' (zypper wp).

Where this comes from

Cited
LPI exam objective 102.5
What it says
Use YUM/DNF to obtain package information and install packages from repositories.

Practise this

Reading one question is not practice. The trainer will draw a set from objective 102 and space the ones you get wrong.

Practise LPIC-1 Exam 101-500