Chapter 4. Searching for RHEL 9 content
In the following sections, learn how to locate and examine content in the AppStream and BaseOS repositories in Red Hat Enterprise Linux 9 by using DNF.
4.1. Searching for software packages Copy linkLink copied to clipboard!
To identify which package provides the software you require, you can use DNF to search the repositories.
Procedure
Depending on your scenario, use one of the following options to search the repository:
To search for a term in the name or summary of packages, enter:
dnf search <term>
$ dnf search <term>Copy to Clipboard Copied! Toggle word wrap Toggle overflow To search for a term in the name, summary, or description of packages, enter:
dnf search --all <term>
$ dnf search --all <term>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note that searching additionally in the description by using the
--alloption is slower than a normal search operation.To search for a package name and list the package name and its version in the output, enter:
dnf repoquery <package_name>
$ dnf repoquery <package_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow To search for which package provides a file, specify the file name or the path to the file:
dnf provides <file_name>
$ dnf provides <file_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. Listing software packages Copy linkLink copied to clipboard!
You can use DNF to display a list of packages and their versions that are available in the repositories. If required, you can filter this list and, for example, only list packages for which updates are available.
Procedure
List the latest versions of all available packages, including architectures, version numbers, and the repository they where installed from:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow The
@sign in front of a repository indicates that the package in this line is currently installed.Alternatively, to display all available packages, including version numbers and architectures, enter:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Optionally, you can filter the output by using other options instead of
--all, for example:-
Use
--installedto list only installed packages. -
Use
--availableto list all available packages. -
Use
--upgradesto list packages for which newer versions are available.
NoteYou can filter the results by appending global expressions as arguments. For more details, see Specifying global expressions in DNF input.
-
Use
4.3. Listing repositories Copy linkLink copied to clipboard!
To get an overview of repositories that are enabled and disabled on your system, you can list them.
Procedure
List all enabled repositories on your system:
dnf repolist
$ dnf repolistCopy to Clipboard Copied! Toggle word wrap Toggle overflow To display only certain repositories, append one of the following options to the command:
-
Append
--disabledto list only disabled repositories. -
Append
--allto list both enabled and disabled repositories.
-
Append
Optional: List additional information about the repositories:
dnf repoinfo <repository_name>
$ dnf repoinfo <repository_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteYou can filter the results by using global expressions. For details, see Specifying global expressions in DNF input.
4.4. Displaying package information Copy linkLink copied to clipboard!
You can query DNF repositories to display further details about a package, such as the following:
- Version
- Release
- Architecture
- Package size
- Description
Procedure
Display information about one or more available packages:
dnf info <package_name>
$ dnf info <package_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow This command displays the information for the currently installed package and, if available, its newer versions that are in the repository. Alternatively, use the following command to display the information for all packages with the specified name in the repository:
dnf repoquery --info <package_name>
$ dnf repoquery --info <package_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteYou can filter the results by appending global expressions as arguments. For details, see Specifying global expressions in DNF input.
4.5. Listing package groups and packages they provide Copy linkLink copied to clipboard!
Package groups bundle multiple packages, and you can use package groups to install all packages assigned to a group in a single step. However, before the installation, you must identify the name of the required package group.
Procedure
List both installed and available groups:
dnf group list
$ dnf group listCopy to Clipboard Copied! Toggle word wrap Toggle overflow Note that you can filter the results by appending the
--installedand--availableoption to thednf group listcommand. By using the--hiddenoption, you can display hidden groups in the output.List mandatory, optional, and default packages contained in a particular group:
dnf group info "<group_name>"
$ dnf group info "<group_name>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteYou can filter the results by appending global expressions as arguments. For more details, see Specifying global expressions in DNF input.
Optional: View the number of installed and available groups:
dnf group summary
$ dnf group summaryCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6. Listing available modules and their contents Copy linkLink copied to clipboard!
By searching for modules and displaying information about them with DNF, you can identify which modules are available in the repositories and select the appropriate stream before you install a module.
Procedure
List the module information in one of the following ways:
List all available modules:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Use the
dnf module list <module_name>command to list the same information but only for a specific module.Search for which module provides a certain package:
dnf module provides <package_name>
$ dnf module provides <package_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow For example, to display which module and profiles provide the
npmpackage, enter:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Use one of these methods to list module details:
List all details about a module, including a description, list of all profiles, and a list of all packages the module provides:
dnf module info <module_name>
$ dnf module info <module_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow For example, to display details about the
nodejspackage, enter:Copy to Clipboard Copied! Toggle word wrap Toggle overflow List which packages each module profile installs:
dnf module info --profile <module_name>
$ dnf module info --profile <module_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow For example, to display this information for the
nodejsmodule, enter:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7. Specifying global expressions in DNF input Copy linkLink copied to clipboard!
You can filter the results of dnf commands by appending one or more global expressions as arguments.
Procedure
Use one of the following methods if you use global expressions in
dnfcommands:Enclose the entire global expression in single or double quotation marks:
dnf provides "*/<file_name>"
# dnf provides "*/<file_name>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note that you must precede
<file_name>either by/for an absolute path or*/to use a wildcard if the full path is unknown.Escape the wildcard characters by preceding them with a backslash (
\) character:dnf provides \*/<file_name>
# dnf provides \*/<file_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow