Let's use Remote Desktop Connection command as example -- sudo dnf install gnome-remote-desktop.
In Linux, final usable software is called package.
Think Red Hat Package Manager (RPM) like an installer file, it contains all dependencies, script to install and configuration info.
dnf is a tool to run the installer (RPM).
find / -name "*.rpm" 2>/dev/null in 22 - Red Hat Package Manager (RPM) only looking package in local
dnf can search local and online package.
In the return of command dnf list, an @ symbol indicates the package is installed locally and tells you which repo it originally came from.
zlib-ng-compat.x86_64 2.2.3-2.el10 @rhel-10-for-x86_64-baseos-rpms
389-ds-base.x86_64 3.2.0-7.el10_2 rhel-10-for-x86_64-appstream-rpms
3. In this article, term python is used to illustrate the difference of dnf search command.
Solution
student@localhost:~$ dnf list "python*"
Not root, Subscription Management repositories not updated
Last metadata expiration check: 3:36:05 ago on Fri 19 Jun 2026 11:47:34 AM +08.
Installed Packages
python3-six.noarch 1.16.0-16.el10 @rhel-10-for-x86_64-baseos-rpms
python3-speechd.x86_64 0.11.5-8.el10 @rhel-10-for-x86_64-appstream-rpms
python3-subscription-manager-rhsm.x86_64 1.30.10.1-1.el10_1 @rhel-10-for-x86_64-baseos-rpms
python3-systemd.x86_64 235-11.el10 @rhel-10-for-x86_64-baseos-rpms
python3-urllib3.noarch 1.26.19-2.el10 @rhel-10-for-x86_64-baseos-rpms
Available Packages
python-cups-doc.x86_64 2.0.1-23.el10 rhel-10-for-x86_64-appstream-rpms
python-pyqt6-rpm-macros.noarch 6.10.0-1.el10 rhel-10-for-x86_64-appstream-rpms
python-rpm-macros.noarch 3.12-11.el10 rhel-10-for-x86_64-appstream-rpms
python-srpm-macros.noarch 3.12-11.el10 rhel-10-for-x86_64-appstream-rpms
student@localhost:~$ dnf search python
Not root, Subscription Management repositories not updated
Last metadata expiration check: 3:36:24 ago on Fri 19 Jun 2026 11:47:34 AM +08.
===================================================== Name & Summary Matched: python ======================================================
boost-python3.x86_64 : Run-time component of boost python library for Python 3
graphviz-python3.x86_64 : Python 3 extension for graphviz
ibus-anthy-python.noarch : Anthy Python files for IBus
libcap-ng-python3.x86_64 : Python3 bindings for libcap-ng library
libpeas1-loader-python3.x86_64 : Python 3 loader for libpeas1
nbdkit-python-plugin.x86_64 : Python 3 plugin for nbdkit
openwsman-python3.x86_64 : Python bindings for openwsman client API
policycoreutils-python-utils.noarch : SELinux policy core python utilities
postgresql-plpython3.x86_64 : The Python3 procedural language for PostgreSQL
postgresql18-plpython3.x86_64 : The Python3 procedural language for PostgreSQL
python-cups-doc.x86_64 : Documentation for python-cups
python3.14-scipy.x86_64 : Scientific Tools for Python
python3.14-tkinter.x86_64 : A GUI toolkit for Python
sudo-python-plugin.x86_64 : Python plugin for sudo
systemtap-runtime-python3.x86_64 : Systemtap Python 3 Runtime Support
========================================================== Name Matched: python ===========================================================
python3-alembic.noarch : Database migration tool for SQLAlchemy
python3-argcomplete.noarch : Bash tab completion for argparse
python3-boom.noarch : A set of libraries and tools for managing boot loader entries
python3-charset-normalizer.noarch : The Real First Universal Charset Detector
========================================================= Summary Matched: python =========================================================
blivet-data.noarch : Data for the blivet python module.
boost-numpy3.x86_64 : Run-time component of boost numpy library for Python 3
keylime-tenant.x86_64 : The Python Keylime Tenant
keylime-verifier.x86_64 : The Python Keylime Verifier component
libdnf.x86_64 : Library providing simplified C and Python API to libsolv
pykickstart.noarch : Python utilities for manipulating kickstart files.
sip6.noarch : SIP - Python/C++ Bindings Generator
student@localhost:~$ dnf search all python
Not root, Subscription Management repositories not updated
Last metadata expiration check: 3:37:03 ago on Fri 19 Jun 2026 11:47:34 AM +08.
=========================================== Name & Summary & Description & URL Matched: python ============================================
python-rpm-macros.noarch : The common Python RPM macros
python-srpm-macros.noarch : RPM macros for building Python source packages
python-unversioned-command.noarch : The "python" command that runs Python 3
python3.x86_64 : Python 3.12 interpreter
python3-awscrt.x86_64 : Python bindings for the AWS Common Runtime
python3-cffi.x86_64 : Foreign Function Interface for Python to call C code
============================================== Name & Summary & Description Matched: python ===============================================
boost-python3.x86_64 : Run-time component of boost python library for Python 3
graphviz-python3.x86_64 : Python 3 extension for graphviz
ibus-anthy-python.noarch : Anthy Python files for IBus
libcap-ng-python3.x86_64 : Python3 bindings for libcap-ng library
libpeas1-loader-python3.x86_64 : Python 3 loader for libpeas1
nbdkit-python-plugin.x86_64 : Python 3 plugin for nbdkit
openwsman-python3.x86_64 : Python bindings for openwsman client API
================================================== Name & Summary & URL Matched: python ===================================================
python3-jsonpointer.noarch : Resolve JSON Pointers in Python
python3-pam.noarch : Pure Python interface to the Pluggable Authentication Modules system on Linux
===================================================== Name & Summary Matched: python ======================================================
python3-asn1crypto.noarch : Fast Python ASN.1 parser and serializer
python3-decorator.noarch : Module to simplify usage of decorators in python3
python3-gobject-base.x86_64 : Python 3 bindings for GObject Introspection base package
python3-gobject-base-noarch.noarch : Python 3 bindings for GObject Introspection base (not architecture dependent)
python3-ipaclient.noarch : Python libraries used by IPA client
================================================ Name & Description & URL Matched: python =================================================
python3-distro.noarch : Linux Distribution - a Linux OS platform information API
python3-greenlet.x86_64 : Lightweight in-process concurrent programming
python3-iniparse.noarch : Accessing and Modifying INI files
python3-jsonschema-specifications.noarch : JSON Schema meta-schemas and vocabularies, exposed as a Registry
python3-justbases.noarch : A small library for precise conversion between arbitrary bases
python3-justbytes.noarch : Library for handling computation with address ranges in bytes
python3-ldap.x86_64 : An object-oriented API to access LDAP directory servers
python3-pyudev.noarch : A libudev binding
python3-requests-oauthlib.noarch : OAuthlib authentication support for Requests.
python3-xkbregistry.x86_64 : Bindings for libxkbregistry using cffi
=================================================== Name & Description Matched: python ====================================================
python3-argcomplete.noarch : Bash tab completion for argparse
python3-boom.noarch : A set of libraries and tools for managing boot loader entries
python3-charset-normalizer.noarch : The Real First Universal Charset Detector
python3-cryptography.x86_64 : PyCA's cryptography library
python3-dateutil.noarch : Powerful extensions to the standard datetime module
python3-dbus-client-gen.noarch : Library for Generating D-Bus Client Code
python3.14-urllib3.noarch : HTTP library with thread-safe connection pooling, file post, and more
======================================================= Name & URL Matched: python ========================================================
python3-referencing.noarch : An implementation-agnostic implementation of JSON reference resolution
python3-urllib-gssapi.noarch : A GSSAPI/SPNEGO authentication handler for urllib/urllib2
========================================================== Name Matched: python ===========================================================
python3-alembic.noarch : Database migration tool for SQLAlchemy
python3-colorama.noarch : Cross-platform colored terminal text
python3-configobj.noarch : Config file reading, writing, and validation
python3-configshell.noarch : A framework to implement simple but nice CLIs
python3-dnf-plugin-modulesync.noarch : Download module metadata and packages and create repository
python3-dnf-plugin-versionlock.noarch : Version Lock Plugin for DNF
python3-wcwidth.noarch : Measures number of Terminal column cells of wide-character codes
python3.14-numpy-f2py.x86_64 : f2py for numpy
=============================================== Summary & Description & URL Matched: python ===============================================
sip6.noarch : SIP - Python/C++ Bindings Generator
================================================== Summary & Description Matched: python ==================================================
blivet-data.noarch : Data for the blivet python module.
boost-numpy3.x86_64 : Run-time component of boost numpy library for Python 3
libdnf.x86_64 : Library providing simplified C and Python API to libsolv
pykickstart.noarch : Python utilities for manipulating kickstart files.
========================================================= Summary Matched: python =========================================================
keylime-tenant.x86_64 : The Python Keylime Tenant
keylime-verifier.x86_64 : The Python Keylime Verifier component
======================================================= Description Matched: python =======================================================
bcc.x86_64 : BPF Compiler Collection (BCC)
bsf.noarch : Bean Scripting Framework
drgn.x86_64 : Programmable debugger
fence-agents-common.x86_64 : Common base for Fence Agents
hivex.x86_64 : Read and write Windows Registry binary hive files
libguestfs.x86_64 : Access and modify virtual machine disk images
librepo.x86_64 : Repodata downloading library
nettle.x86_64 : A low-level cryptographic library
nettle-devel.x86_64 : Development headers for a low-level cryptographic library
openscap-engine-sce.x86_64 : Script Check Engine plug-in for OpenSCAP
pcp-pmda-bcc.x86_64 : Performance Co-Pilot (PCP) metrics from eBPF/BCC modules
pcp-system-tools.x86_64 : Performance Co-Pilot (PCP) System and Monitoring Tools
php-ffi.x86_64 : Foreign Function Interface
php8.4-ffi.x86_64 : Foreign Function Interface
setools.x86_64 : Policy analysis tools for SELinux
setools-gui.x86_64 : Policy analysis graphical tools for SELinux
source-highlight.x86_64 : Produces a document with syntax highlighting
texlive-listings.noarch : Typeset source code listings using LaTeX
valgrind-scripts.x86_64 : Scripts for post-processing valgrind tool output
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
student@localhost:~$ dnf provides */python
Not root, Subscription Management repositories not updated
Red Hat Enterprise Linux 10 for x86_64 - AppStream (RPMs) 122 kB/s | 40 MB 05:38
Red Hat Enterprise Linux 10 for x86_64 - BaseOS (RPMs) 119 kB/s | 68 MB 09:42
Last metadata expiration check: 0:00:01 ago on Fri 19 Jun 2026 03:41:01 PM +08.
389-ds-base-3.0.6-3.el10_0.x86_64 : 389 Directory Server (base)
Repo : rhel-10-for-x86_64-appstream-rpms
Matched from:
Filename : /usr/lib64/dirsrv/python
389-ds-base-3.0.6-5.el10_0.x86_64 : 389 Directory Server (base)
Repo : rhel-10-for-x86_64-appstream-rpms
Matched from:
Filename : /usr/lib64/dirsrv/python
389-ds-base-3.0.6-7.el10_0.x86_64 : 389 Directory Server (base)
Repo : rhel-10-for-x86_64-appstream-rpms
Matched from:
Filename : /usr/lib64/dirsrv/python
389-ds-base-3.0.6-8.el10_0.x86_64 : 389 Directory Server (base)
Repo : rhel-10-for-x86_64-appstream-rpms
Matched from:
Filename : /usr/lib64/dirsrv/python
389-ds-base-3.0.6-12.el10_0.x86_64 : 389 Directory Server (base)
Repo : rhel-10-for-x86_64-appstream-rpms
Matched from:
Filename : /usr/lib64/dirsrv/python
389-ds-base-3.0.6-13.el10_0.x86_64 : 389 Directory Server (base)
Repo : rhel-10-for-x86_64-appstream-rpms
Matched from:
Filename : /usr/lib64/dirsrv/python
student@localhost:~$ dnf info python
Not root, Subscription Management repositories not updated
Last metadata expiration check: 0:00:33 ago on Fri 19 Jun 2026 03:41:01 PM +08.
Error: No matching Packages to list
dnf install [Package] Install package and dependencies
dnf remove [Package] Delete main package and its dependencies
Imagine when you set up a programmer computer, you will need to download bundle of software like Microsoft Visual Studio, Python etc.
The software bundle is called <dnf group>.
Tutorial
Listing Available Groups
dnf group list
Inspecting a Group's Contents
sudo dnf group info "[Group]"
Example: sudo dnf group info "Development Tools"
Installing a Group
sudo dnf group install "[Group]"
Example: sudo dnf group install "Development Tools"
Remove the group
sudo dnf group remove "[Group]"
Example: sudo dnf group remove "Development Tools"
Solution
student@localhost:~$ dnf group list
Not root, Subscription Management repositories not updated
Red Hat Enterprise Linux 10 for x86_64 - AppStream (RPMs) 6.2 kB/s | 4.1 kB 00:00
Red Hat Enterprise Linux 10 for x86_64 - AppStream (RPMs) 132 kB/s | 5.8 MB 00:44
Red Hat Enterprise Linux 10 for x86_64 - BaseOS (RPMs) 11 kB/s | 4.1 kB 00:00
Available Environment Groups:
Server
Minimal Install
Workstation
Virtualization Host
Custom Operating System
Installed Environment Groups:
Server with GUI
Installed Groups:
Container Management
Headless Management
Available Groups:
RPM Development Tools
.NET Development
Console Internet Tools
Development Tools
Legacy UNIX Compatibility
Smart Card Support
Graphical Administration Tools
Scientific Support
Security Tools
System Tools
Network Servers
student@localhost:~$ dnf group info "Development Tools"
Not root, Subscription Management repositories not updated
Last metadata expiration check: 0:01:20 ago on Mon 22 Jun 2026 11:18:54 AM +08.
Group: Development Tools
Description: A basic development environment.
Mandatory Packages:
autoconf
automake
binutils
bison
flex
gcc
gcc-c++
gdb
glibc-devel
libtool
make
pkgconf
pkgconf-m4
pkgconf-pkg-config
redhat-rpm-config
rpm-build
rpm-sign
strace
Default Packages:
asciidoc
byacc
diffstat
git
intltool
jna
ltrace
patchutils
perl-Fedora-VSP
perl-generators
pesign
source-highlight
systemtap
valgrind
valgrind-devel
Optional Packages:
cmake
expect
rpmdevtools
student@localhost:~$ sudo dnf group install "Development Tools"
[sudo] password for student:
Updating Subscription Management repositories.
Red Hat Enterprise Linux 10 for x86_64 - AppStream (RPMs) 3.2 kB/s | 4.1 kB 00:01
Red Hat Enterprise Linux 10 for x86_64 - AppStream (RPMs) 122 kB/s | 5.8 MB 00:48
Red Hat Enterprise Linux 10 for x86_64 - BaseOS (RPMs) 4.0 kB/s | 4.1 kB 00:01
Red Hat Enterprise Linux 10 for x86_64 - BaseOS (RPMs) 78 kB/s | 65 MB 14:05
Last metadata expiration check: 0:00:01 ago on Mon 22 Jun 2026 11:35:25 AM +08.
Dependencies resolved.
=============================================================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================================================
Upgrading:
binutils x86_64 2.41-63.el10 rhel-10-for-x86_64-baseos-rpms 6.4 M
glibc x86_64 2.39-124.el10_2 rhel-10-for-x86_64-baseos-rpms 2.1 M
glibc-all-langpacks x86_64 2.39-124.el10_2 rhel-10-for-x86_64-baseos-rpms 18 M
glibc-common x86_64 2.39-124.el10_2 rhel-10-for-x86_64-baseos-rpms 327 k
glibc-gconv-extra x86_64 2.39-124.el10_2 rhel-10-for-x86_64-baseos-rpms 1.7 M
libgcc x86_64 14.3.1-4.4.el10 rhel-10-for-x86_64-baseos-rpms 146 k
libgomp x86_64 14.3.1-4.4.el10 rhel-10-for-x86_64-baseos-rpms 369 k
libstdc++ x86_64 14.3.1-4.4.el10 rhel-10-for-x86_64-baseos-rpms 926 k
python3-rpm x86_64 4.19.1.1-23.el10 rhel-10-for-x86_64-baseos-rpms 70 k
rpm x86_64 4.19.1.1-23.el10 rhel-10-for-x86_64-baseos-rpms 567 k
rpm-build-libs x86_64 4.19.1.1-23.el10 rhel-10-for-x86_64-baseos-rpms 98 k
rpm-libs x86_64 4.19.1.1-23.el10 rhel-10-for-x86_64-baseos-rpms 316 k
rpm-plugin-audit x86_64 4.19.1.1-23.el10 rhel-10-for-x86_64-baseos-rpms 23 k
rpm-plugin-selinux x86_64 4.19.1.1-23.el10 rhel-10-for-x86_64-baseos-rpms 23 k
rpm-plugin-systemd-inhibit x86_64 4.19.1.1-23.el10 rhel-10-for-x86_64-appstream-rpms 23 k
rpm-sign-libs x86_64 4.19.1.1-23.el10 rhel-10-for-x86_64-baseos-rpms 28 k
strace x86_64 6.12-3.el10 rhel-10-for-x86_64-baseos-rpms 1.4 M
Installing group/module packages:
asciidoc noarch 10.2.0-12.el10 rhel-10-for-x86_64-appstream-rpms 433 k
autoconf noarch 2.71-13.el10 rhel-10-for-x86_64-appstream-rpms 736 k
automake noarch 1.16.5-20.el10 rhel-10-for-
Installing Groups:
Development Tools
Transaction Summary
=============================================================================================================================================================
Install 130 Packages
Upgrade 17 Packages
Total download size: 181 M
Is this ok [y/N]: y
Downloading Packages:
(1/147): diffstat-1.66-3.el10.x86_64.rpm 12 kB/s | 48 kB 00:04
(2/147): fonts-srpm-macros-2.0.5-18.el10.noarch.rpm 41 kB/s | 29 kB 00:00
(3/147): asciidoc-10.2.0-12.el10.noarch.rpm 77 kB/s | 433 kB 00:05
(4/147): perl-Data-Dump-1.25-13.el10.noarch.rpm 43 kB/s | 36 kB 00:00
(5/147): perl-Error-0.17029-18.el10.noarch.rpm 38 kB/s | 46 kB 00:01
(6/147): perl-HTTP-Message-6.45-5.el10.noarch.rpm 45 kB/s | 103 kB 00:02
(7/147): gettext-devel-0.22.5-6.el10.x86_64.rpm 43 kB/s | 246 kB 00:05
(8/147): perl-srpm-macros-1-57.el10.noarch.rpm 22 kB/s | 9.7 kB 00:00
(9/147): perl-version-0.99.32-4.el10.x86_64.rpm 75 kB/s | 68 kB 00:00
(10/147): perl-Try-Tiny-0.31-12.el10.noarch.rpm 15 kB/s | 44 kB 00:02
(145/147): glibc-common-2.39-124.el10_2.x86_64.rpm 94 kB/s | 327 kB 00:03
(146/147): glibc-2.39-124.el10_2.x86_64.rpm 73 kB/s | 2.1 MB 00:29
(147/147): glibc-all-langpacks-2.39-124.el10_2.x86_64.rpm 95 kB/s | 18 MB 03:17
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 198 kB/s | 181 MB 15:38
Red Hat Enterprise Linux 10 for x86_64 - AppStream (RPMs) 8.6 MB/s | 20 kB 00:00
Importing GPG key 0xFD431D51:
Userid : "Red Hat, Inc. (release key 2) <security@redhat.com>"
Fingerprint: 567E 347A D004 4ADE 55BA 8A5F 199E 2F91 FD43 1D51
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Is this ok [y/N]: y
Key imported successfully
Importing GPG key 0x5A6340B3:
Userid : "Red Hat, Inc. (auxiliary key 3) <security@redhat.com>"
Fingerprint: 7E46 2425 8C40 6535 D56D 6F13 5054 E4A4 5A63 40B3
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Is this ok [y/N]: y
Key imported successfully
Importing GPG key 0x05707A62:
Userid : "Red Hat, Inc. (release key 4) <security@redhat.com>"
Fingerprint: FCD3 55B3 0570 7A62 DA14 3AB6 E422 397E 50FE 8467 A2A9 5343 D246 D627 6AFE DF8F
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Upgrading : libgcc-14.3.1-4.4.el10.x86_64 1/164
Running scriptlet: libgcc-14.3.1-4.4.el10.x86_64 1/164
Upgrading : glibc-all-langpacks-2.39-124.el10_2.x86_64 2/164
Upgrading : glibc-gconv-extra-2.39-124.el10_2.x86_64 3/164
Running scriptlet: glibc-gconv-extra-2.39-124.el10_2.x86_64 3/164
Upgrading : glibc-common-2.39-124.el10_2.x86_64 4/164
Running scriptlet: glibc-2.39-124.el10_2.x86_64 5/164
Upgrading : glibc-2.39-124.el10_2.x86_64 5/164
Running scriptlet: glibc-2.39-124.el10_2.x86_64 5/164
Upgrading : libstdc++-14.3.1-4.4.el10.x86_64 6/164
Upgrading : rpm-libs-4.19.1.1-23.el10.x86_64 7/164
Upgrading : rpm-plugin-audit-4.19.1.1-23.el10.x86_64 8/164
Running scriptlet: rpm-4.19.1.1-23.el10.x86_64 9/164
Upgrading : rpm-4.19.1.1-23.el10.x86_64 9/164
Installing : boost-system-1.83.0-7.el10.x86_64 10/164
Upgrading : binutils-2.41-63.el10.x86_64
Running scriptlet: redhat-rpm-config-295-1.el10.noarch 122/164
Installing : fonts-srpm-macros-1:2.0.5-18.el10.noarch 123/164
Installing : perl-Try-Tiny-0.31-12.el10.noarch 124/164
Installing : perl-libwww-perl-6.76-3.el10.noarch 125/164
Installing : perl-XML-Parser-2.47-6.1.el10_1.x86_64 126/164
Installing : perl-Error-1:0.17029-18.el10.noarch 134/164
Installing : libtool-2.4.7-13.el10.x86_64 135/164
Installing : valgrind-devel-1:3.26.0-5.el10.x86_64 136/164
Installing : gcc-c++-14.3.1-4.4.el10.x86_64 137/164
Running scriptlet: pesign-116-6.el10.x86_64 138/164
Installing : pesign-116-6.el10.x86_64 138/164
Running scriptlet: pesign-116-6.el10.x86_64 138/164
Installing : rpm-sign-4.19.1.1-23.el10.x86_64 139/164
Installing : patchutils-0.4.2-15.el10.x86_64 140/164
Upgrading : rpm-plugin-systemd-inhibit-4.19.1.1-23.el10.x86_64 141/164
Upgrading : rpm-plugin-selinux-4.19.1.1-23.el10.x86_64 142/164
Installing : ltrace-0.7.91-53.el10.x86_64 143/164
Installing : diffstat-1.66-3.el10.x86_64 144/164
Installing : byacc-2.0.20230521-7.el10.x86_64 145/164
Upgrading : strace-6.12-3.el10.x86_64 146/164
Installing : systemd-rpm-macros-257-13.el10.noarch 147/164
Running scriptlet: binutils-2.41-58.el10_1.2.x86_64 148/164
Cleanup : binutils-2.41-58.el10_1.2.x86_64 148/164
Running scriptlet: binutils-2.41-58.el10_1.2.x86_64 148/164
Cleanup : libstdc++-14.3.1-2.1.el10.x86_64 149/164
Cleanup : libgcc-14.3.1-2.1.el10.x86_64 164/164
Running scriptlet: libgcc-14.3.1-2.1.el10.x86_64 164/164
Running scriptlet: glibc-all-langpacks-2.39-124.el10_2.x86_64 164/164
Running scriptlet: rpm-4.19.1.1-23.el10.x86_64 164/164
Running scriptlet: pesign-116-6.el10.x86_64 164/164
Running scriptlet: libgcc-14.3.1-2.1.el10.x86_64 164/164
Installed products updated.
Upgraded:
binutils-2.41-63.el10.x86_64 glibc-2.39-124.el10_2.x86_64 glibc-all-langpacks-2.39-124.el10_2.x86_64
glibc-common-2.39-124.el10_2.x86_64 glibc-gconv-extra-2.39-124.el10_2.x86_64 libgcc-14.3.1-4.4.el10.x86_64
libgomp-14.3.1-4.4.el10.x86_64 libstdc++-14.3.1-4.4.el10.x86_64 python3-rpm-4.19.1.1-23.el10.x86_64
rpm-4.19.1.1-23.el10.x86_64 rpm-build-libs-4.19.1.1-23.el10.x86_64 rpm-libs-4.19.1.1-23.el10.x86_64
rpm-plugin-audit-4.19.1.1-23.el10.x86_64 rpm-plugin-selinux-4.19.1.1-23.el10.x86_64 rpm-plugin-systemd-inhibit-4.19.1.1-23.el10.x86_64
rpm-sign-libs-4.19.1.1-23.el10.x86_64 strace-6.12-3.el10.x86_64
Installed:
annobin-docs-13.02-2.el10.noarch annobin-plugin-gcc-13.02-2.el10.x86_64 asciidoc-10.2.0-12.el10.noarch
autoconf-2.71-13.el10.noarch automake-1.16.5-20.el10.noarch bison-3.8.2-9.el10.x86_64
boost-atomic-1.83.0-7.el10.x86_64 boost-filesystem-1.83.0-7.el10.x86_64 boost-regex-1.83.0-7.el10.x86_64
boost-system-1.83.0-7.el10.x86_64 boost-thread-1.83.0-7.el10.x86_64 byacc-2.0.20230521-7.el10.x86_64
cmake-filesystem-3.31.8-1.el10.x86_64 cpp-14.3.1-4.4.el10.x86_64 debugedit-5.1-8.el10.x86_64
diffstat-1.66-3.el10.x86_64 docbook-dtds-1.0-90.el10_0.noarch docbook-style-xsl-1.79.2-28.el10_0.noarch
dwz-0.16-1.el10.x86_64 dyninst-13.0.0-1.el10.x86_64 efi-srpm-macros-6-6.el10.noarch
efivar-libs-39-3.el10.x86_64 elfutils-0.193-1.el10.x86_64 elfutils-debuginfod-client-devel-0.193-1.el10.x86_64
elfutils-devel-0.193-1.el10.x86_64 elfutils-libelf-devel-0.193-1.el10.x86_64 flex-2.6.4
Complete!
student@localhost:~$ sudo dnf group remove "Development Tools"
[sudo] password for student:
Updating Subscription Management repositories.
Dependencies resolved.
=============================================================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================================================
Removing:
asciidoc noarch 10.2.0-12.el10 @rhel-10-for-x86_64-appstream-rpms 1.7 M
autoconf noarch 2.71-13.el10 @rhel-10-for-x86_64-appstream-rpms 2.4 M
automake noarch 1.16.5-20.el10 @rhel-10-for-x86_64-appstream-rpms 1.7 M
bison x86_64 3.8.2-9.el10 @rhel-10-for-x86_64-appstream-rpms 3.5 M
byacc x86_64 2.0.20230521-7.el10 @rhel-10-for-x86_64-appstream-rpms 377 k
diffstat x86_64 1.66-3.el10 @rhel-10-for-x86_64-appstream-rpms 80 k
flex x86_64 2.6.4-19.el10 @rhel-10-for-x86_64-appstream-rpms 805 k
gcc x86_64 14.3.1-4.4.el10 @rhel-10-for-x86_64-appstream-rpms 109 M
gcc-c++ x86_64 14.3.1-4.4.el10 @rhel-10-for-x86_64-appstream-rpms 42 M
gdb x86_64 16.3-3.el10 @rhel-10-for-x86_64-appstream-rpms 455 k
git x86_64 2.52.0-1.el10 @rhel-10-for-x86_64-appstream-rpms 56 k
glibc-devel x86_64 2.39-124.el10_2 @rhel-10-for-x86_64-appstream-rpms 2.2 M
intltool noarch 0.51.0-29.el10 @rhel-10-for-x86_64-appstream-rpms 169 k
jna x86_64 5.14.0-7.el10 @rhel-10-for-x86_64-appstream-rpms 497 k
libtool x86_64 2.4.7-13.el10 @rhel-10-for-x86_64-appstream-rpms 2.6 M
ltrace x86_64 0.7.91-53.el10 @rhel-10-for-x86_64-appstream-rpms 292 k
make x86_64 1:4.4.1-9.el10 @rhel-10-for-x86_64-baseos-rpms 1.8 M
patchutils x86_64 0.4.2-15.el10 @rhel-10-for-x86_64-appstream-rpms 209 k
perl-Fedora-VSP noarch 0.001-36.el10 @rhel-10-for-x86_64-appstream-rpms 40 k
perl-generators noarch 1.16-7.el10 @rhel-10-for-
Removing Groups:
Development Tools
Transaction Summary
=============================================================================================================================================================
Remove 129 Packages
Freed space: 484 M
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 123/129
Erasing : perl-version-8:0.99.32-4.el10.x86_64 124/129
Erasing : perl-TermReadKey-2.38-24.el10.x86_64 125/129
Erasing : rpm-sign-4.19.1.1-23.el10.x86_64 126/129
Erasing : ltrace-0.7.91-53.el10.x86_64 127/129
Erasing : diffstat-1.66-3.el10.x86_64 128/129
Erasing : byacc-2.0.20230521-7.el10.x86_64 129/129
Running scriptlet: byacc-2.0.20230521-7.el10.x86_64 129/129
Installed products updated.
Removed:
annobin-docs-13.02-2.el10.noarch annobin-plugin-gcc-13.02-2.el10.x86_64 asciidoc-10.2.0-12.el10.noarch
autoconf-2.71-13.el10.noarch automake-1.16.5-20.el10.noarch bison-3.8.2-9.el10.x86_64
boost-atomic-1.83.0-7.el10.x86_64 boost-filesystem-1.83.0-7.el10.x86_64 boost-regex-1.83.0-7.el10.x86_64
boost-system-1.83.0-7.el10.x86_64 boost-thread-1.83.0-7.el10.x86_64 byacc-2.0.20230521-7.el10.x86_64
cmake-filesystem-3.31.8-1.el10.x86_64 cpp-14.3.1-4.4.el10.x86_64 debugedit-5.1-8.el10.x86_64
diffstat-1.66-3.el10.x86_64 docbook-dtds-1.0-90.el10_0.noarch docbook-style-xsl-1.79.2-28.el10_0.noarch
dwz-0.16-1.el10.x86_64 dyninst-13.0.0-1.el10.x86_64 efi-srpm-macros-
Complete!
student@localhost:~$
Check transaction history
dnf history
student@localhost:~$ dnf history
Not root, Subscription Management repositories not updated
ID | Command line | Date and time | Action(s) | Altered
----------------------------------------------------------------------------------------------------------------------
5 | group remove Development Tools | 2026-06-22 11:57 | Removed | 130 EE
4 | group install Development Tools | 2026-06-22 11:52 | I, U | 148 E<
3 | | 2026-04-26 16:44 | Install | 1 >
2 | | 2026-01-22 10:38 | E, I, U | 475
1 | | 2026-01-13 16:32 | Install | 1264 EE
2. Undo specific action
It's not neccessary that need to undo one by one, but it's recommended.
dnf history undo [ID]
Example: dnf history undo 5