====== RHEL 10 dnf command ====== ===== TO ADD ===== * plugins * excluding packages ===== Contents of dnf package ===== $ rpm -ql dnf | less ===== /etc/dnf and dnf.conf ===== $ tree -F /etc/dnf /etc/dnf/ ├── aliases.d/ ├── dnf.conf ├── modules.d/ ├── modules.defaults.d/ ├── plugins/ │   ├── copr.conf │   ├── copr.d/ │   └── debuginfo-install.conf ├── protected.d/ │   ├── almalinux-release.conf │   ├── grub2-pc.conf │   ├── grub2-tools-minimal.conf │   ├── selinux-policy-targeted.conf │   ├── setup.conf │   ├── sudo.conf │   ├── systemd.conf │   └── yum.conf ├── usr-drift-protected-paths.d/ └── vars/ └── stream Here's ''/etc/dnf/dnf.conf'': [main] gpgcheck=1 installonly_limit=3 clean_requirements_on_remove=True best=True skip_if_unavailable=False For help with DNF configuration: $ man dnf.conf ===== Upcoming commands ===== * ''dnf repolist'' * ''dns repoinfo'' * ''dnf repoquery'' * ''dnf repository-packages'' * ''dnf search'' * ''dnf info'' * ''dnf list'' * ''dnf install'', ''dnf remove'' * ''dnf provides'' * ''dnf config-manager'' * ''dnf group'' For help on any of them: $ dnf help group ===== Examine current repositories ===== List current repositories with ''dnf repolist'': $ dnf repolist repo id repo name appstream AlmaLinux 10 - AppStream baseos AlmaLinux 10 - BaseOS crb AlmaLinux 10 - CRB extras AlmaLinux 10 - Extras * More information with ''dnf repoinfo'': $ dnf repoinfo ... snip ... $ Info about a specific repository: $ dnf repoinfo crb Repo-id : crb Repo-name : AlmaLinux 10 - CRB Repo-status : enabled Repo-revision : 1792407590 Repo-updated : Mon 19 Oct 2026 06:59:50 AM Repo-pkgs : 1,807 Repo-available-pkgs: 1,807 Repo-size : 25 G Repo-mirrors : https://mirrors.almalinux.org/mirrorlist/10/crb Repo-baseurl : https://almalinux.mirror.globo.tech/10.2/CRB/x86_64/os/ (9 more) Repo-expire : 86,400 second(s) (last: Tue 20 Oct 2026 04:00:14 AM) Repo-filename : /etc/yum.repos.d/almalinux-crb.repo Total packages: 1,807 $ Scan all repositories: $ dnf repoquery | wc -l 12088 $ List packages in a given repo: $ dnf repository-packages extras list Last metadata expiration check: 6:33:25 ago on Thu 22 Oct 2026 10:24:38 AM. Available Packages alma-certify.noarch 1.0.0-1.el10 extras almalinux-release-devel.x86_64 10-1.el10 extras almalinux-release-nvidia-driver.x86_64 10-5.el10_1 extras almalinux-release-opennebula-addons.x86_64 10-1.el10 extras almalinux-release-synergy.x86_64 10-1.el10 extras almalinux-release-testing.x86_64 10-2.el10 extras anaconda-live.noarch 40.22.3.46-1.el10_2.alma.1 extras centos-release-ceph-squid.noarch 1.0-2.el10 extras centos-release-cloud.noarch 1-1.el10 extras centos-release-messaging.noarch 1-5.el10 extras centos-release-nfs-ganesha7.noarch 1.0-1.el10 extras centos-release-nfv-common.noarch 1-5.el10 extras centos-release-nfv-openvswitch.noarch 1-5.el10 extras centos-release-ovirt45.noarch 10.0-4.el10_1 extras centos-release-ovirt45-testing.noarch 10.0-4.el10_1 extras centos-release-rabbitmq-4.noarch 1-5.el10 extras centos-release-samba421.noarch 1.0-1.el10 extras centos-release-samba422.noarch 1.0-1.el10 extras centos-release-samba423.noarch 1.0-1.el10 extras centos-release-samba424.noarch 1.0-1.el10 extras centos-release-storage-common.noarch 2-2.el10 extras centos-release-virt-common.noarch 1-1.el10 extras epel-release.noarch 10-6.el10 extras livesys-scripts.noarch 0.6.4-1.el10 extras xisxwayland.x86_64 2-4.el10 extras $ ===== Examine installed packages ===== ''dnf list'': $ dnf list --all [default] $ dnf list --installed $ dnf list --available Other useful variations: $ dnf list --updates $ dnf list --recent ===== Searching and getting more info ===== ==== Searching for general keyword ==== Yeesh: $ dnf help search usage: dnf search [-c [config file]] [-q] [-v] [--version] [--installroot [path]] [--nodocs] [--noplugins] [--enableplugin [plugin]] [--disableplugin [plugin]] [--releasever RELEASEVER] [--releasever-major RELEASEVER_MAJOR] [--releasever-minor RELEASEVER_MINOR] [--setopt SETOPTS] [--skip-broken] [-h] [--allowerasing] [-b | --nobest] [-C] [-R [minutes]] [-d [debug level]] [--debugsolver] [--showduplicates] [-e ERRORLEVEL] [--obsoletes] [--rpmverbosity [debug level name]] [-y] [--assumeno] [--enablerepo [repo]] [--disablerepo [repo] | --repo [repo]] [--enable | --disable] [-x [package]] [--disableexcludes [repo]] [--repofrompath [repo,path]] [--noautoremove] [--nogpgcheck] [--color COLOR] [--refresh] [-4] [-6] [--destdir DESTDIR] [--downloadonly] [--transient] [--comment COMMENT] [--bugfix] [--enhancement] [--newpackage] [--security] [--advisory ADVISORY] [--bz BUGZILLA] [--cve CVES] [--sec-severity {Critical,Important,Moderate,Low}] [--forcearch ARCH] [--all] KEYWORD [KEYWORD ...] ... snip ... Simple searching: $ dnf search trace Last metadata expiration check: 0:24:18 ago on Tue 20 Oct 2026 04:00:14 AM. ============================ Name & Summary Matched: trace ============================= boost-stacktrace.x86_64 : Run-time component of boost stacktrace library crash-trace-command.x86_64 : Trace extension module for the crash utility libbabeltrace.x86_64 : Common Trace Format Babel Tower libbabeltrace-devel.x86_64 : Common Trace Format Babel Tower libtracecmd.x86_64 : A library for reading tracing instances stored in a trace file libtracecmd-devel.x86_64 : Development files for libtracecmd libtraceevent.x86_64 : Library to parse raw trace event formats libtraceevent-devel.x86_64 : Development headers of libtraceevent libtracefs.x86_64 : Library for access kernel tracefs libtracefs-devel.x86_64 : Development headers of libtracefs libvdpau-trace.x86_64 : Trace library for libvdpau pcp-pmda-bpftrace.x86_64 : Performance Co-Pilot (PCP) metrics from bpftrace scripts perl-Devel-StackTrace.noarch : Perl module implementing stack trace and stack trace : frame objects potrace-devel.x86_64 : Potrace development library and headers python3-babeltrace.x86_64 : Common Trace Format Babel Tower systemtap-sdt-dtrace.x86_64 : Static probe support dtrace tool trace-cmd.x86_64 : A user interface to Ftrace traceroute.x86_64 : Traces the route taken by packets over an IPv4/IPv6 network ================================= Name Matched: trace ================================== blktrace.x86_64 : Utilities for performing block layer IO tracing in the Linux kernel bpftrace.x86_64 : High-level tracing language for Linux eBPF ltrace.x86_64 : Tracks runtime library calls from dynamically linked executables pcp-pmda-trace.x86_64 : Performance Co-Pilot (PCP) metrics for application tracing potrace.x86_64 : Transform bitmaps into vector graphics strace.x86_64 : Tracks and displays system calls associated with a running process ================================ Summary Matched: trace ================================ kernelshark.x86_64 : GUI analysis for Ftrace data captured by trace-cmd libipt.x86_64 : Intel Processor Trace Decoder Library lttng-ust.x86_64 : LTTng Userspace Tracer library lttng-ust-devel.x86_64 : LTTng Userspace Tracer library headers and development files memstrack.x86_64 : A memory allocation tracer, like a hot spot analyzer for memory : allocation mtr.x86_64 : Network diagnostic tool combining 'traceroute' and 'ping' php-pecl-xdebug3.x86_64 : Provides functions for function traces and profiling php8.4-pecl-xdebug3.x86_64 : Provides functions for function traces and profiling ==== Searching for a specific package ==== $ dnf repoquery strace Last metadata expiration check: 5:56:08 ago on Tue 20 Oct 2026 04:00:14 AM. strace-0:6.12-3.el10.x86_64 $ ==== Get information about a specific package ==== $ dnf info strace Last metadata expiration check: 0:26:05 ago on Tue 20 Oct 2026 04:00:14 AM. Available Packages Name : strace Version : 6.12 Release : 3.el10 Architecture : x86_64 Size : 1.4 M Source : strace-6.12-3.el10.src.rpm Repository : baseos Summary : Tracks and displays system calls associated with a running process URL : https://strace.io License : LGPL-2.1-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND : BSD-2-Clause AND BSD-3-Clause AND (GPL-1.0-or-later WITH : Linux-syscall-note) AND (GPL-2.0-or-later WITH Linux-syscall-note) AND : (GPL-2.0-only WITH Linux-syscall-note) AND (LGPL-2.0-or-later WITH : Linux-syscall-note) AND (LGPL-2.1-or-later WITH Linux-syscall-note) AND : ((GPL-2.0-only WITH Linux-syscall-note) OR Linux-OpenIB) AND : ((GPL-2.0-only WITH Linux-syscall-note) OR MIT) AND ((GPL-2.0-or-later : WITH Linux-syscall-note) OR BSD-3-Clause) AND ISC AND X11 AND FSFAP AND : FSFUL AND FSFULLR AND FSFULLRWD Description : The strace program intercepts and records the system calls called and : received by a running process. Strace can print a record of each : system call, its arguments and its return value. Strace is useful for : diagnosing problems and debugging, as well as for instructional : purposes. : : Install strace if you need a tool to track the system calls made and : received by a process. $ ==== Find package that contains a given file ==== If you know the full path to the file: $ dnf provides /usr/bin/strace AlmaLinux 10 - AppStream 23 MB/s | 25 MB 00:01 AlmaLinux 10 - BaseOS 33 MB/s | 51 MB 00:01 AlmaLinux 10 - CRB 7.8 MB/s | 5.3 MB 00:00 AlmaLinux 10 - Extras 85 kB/s | 25 kB 00:00 strace-6.12-3.el10.x86_64 : Tracks and displays system calls associated with a running process Repo : baseos Matched from: Filename : /usr/bin/strace If you're not sure of the full path to the file, use a wildcard: $ dnf provides */strace ===== Install/remove one or more packages ===== $ sudo dnf install strace $ rpm -q strace $ sudo dnf remove strace ===== Checking for/installing upgrades ===== Check for potential upgrades with either of: $ dnf check-update $ dnf list --upgrades Variations for upgrading: $ dnf upgrade --refresh # upgrade metadata first $ dnf upgrade $ dnf upgrade ===== More about "dnf repoquery" ===== $ dnf repoquery $ dnf repoquery --installed $ dnf repoquery --available $ dnf repoquery --upgrades ===== dnf config-manager ===== $ dnf config-manager --dump $ dnf config-manager --dump-variables ===== Enabling and disabling repositories ===== List enabled repositories: $ dnf repolist [--enabled] repo id repo name appstream AlmaLinux 10 - AppStream baseos AlmaLinux 10 - BaseOS crb AlmaLinux 10 - CRB extras AlmaLinux 10 - Extras $ What about the disabled repos? $ dnf repolist --disabled repo id repo name appstream-debuginfo AlmaLinux 10 - AppStream - Debug appstream-source AlmaLinux 10 - AppStream - Source baseos-debuginfo AlmaLinux 10 - BaseOS - Debug baseos-source AlmaLinux 10 - BaseOS - Source crb-debuginfo AlmaLinux 10 - CRB - Debug crb-source AlmaLinux 10 - CRB - Source extras-debuginfo AlmaLinux 10 - Extras - Debug ... snip ... $ Disable, verify, re-enable: $ sudo dnf config-manager --disable crb $ dnf repolist $ sudo dnf config-manager --enable crb ===== Working with groups ===== Last part of ''dnf help group'': Group command-specific options: --with-optional include optional packages from group --hidden show also hidden groups --installed show only installed groups --available show only available groups --ids show also ID of groups COMMAND available subcommands: summary (default), list, info, remove, install, upgrade, mark COMMAND_ARG argument for group subcommand List both installed and available groups: $ dnf group list AlmaLinux 10 - CRB 13 kB/s | 3.8 kB 00:00 Available Environment Groups: Server with GUI Server Workstation Virtualization Host Custom Operating System Installed Environment Groups: Minimal Install Available Groups: Console Internet Tools Container Management .NET Development RPM Development Tools ... snip ... You can guess the rest. As an example: $ sudo dnf group install "Virtualization Host" ... snip ... Installing Environment Groups: Virtualization Host Installing Groups: Base Core Standard Virtualization Hypervisor Virtualization Tools Transaction Summary ================================================================================================ Install 434 Packages Upgrade 69 Packages Total download size: 656 M Upgrade a group: $ dnf group upgrade ===== Automating Updates with DNF ===== $ dnf info dnf-automatic Last metadata expiration check: 23:06:08 ago on Fri 23 Oct 2026 02:35:15 PM. Available Packages Name : dnf-automatic Version : 4.20.0 Release : 22.el10_2.alma.1 Architecture : noarch Size : 37 k Source : dnf-4.20.0-22.el10_2.alma.1.src.rpm Repository : baseos Summary : Package manager - automated upgrades URL : https://github.com/rpm-software-management/dnf License : GPL-2.0-or-later AND GPL-1.0-only Description : Systemd units that can periodically download package upgrades and apply : them. ===== Working with local .rpm files ===== ... download fubar-1.2.3.rpm $ dnf install fubar-1.2.3.rpm ===== Potential EX200 package management tasks ===== * **Configure RPM repositories**: Set up, enable, or modify software repository definitions and access remote or local repository sources. * **Install and Remove RPM Packages**: Use DNF or RPM utilities to search for, install, query, verify, and uninstall RPM software packages. * **Install from Local or Remote Sources**: Install software packages directly from the local file system, remote repositories, or the Red Hat Content Delivery Network. * **Manage Flatpak Packages**: Configure Flatpak remote repositories and install, update, or remove Flatpak applications (featured in recent RHEL versions). * **Persistence After Reboot**: Ensure all package management configurations, enabled repositories, and service adjustments persist across system reboots without manual intervention.