Linux Tutorials - Herong's Tutorial Examples - v5.45, by Herong Yang
What Is DNF
This section provides a quick introduction on DNF (also called Dandified YUM), which is the next generation of YUM (Yellowdog Update Modified) software package manager for RPM (RedHat Package Manager) based Linux distributions.
What Is DNF? - DNF, also called Dandified YUM, is the next generation of YUM (Yellowdog Update Modified) software package manager for RPM (RedHat Package Manager) based Linux distributions.
Here is the description of DNF from its manual page: "DNF is the next upcoming major version of YUM, a package manager for RPM-based Linux distributions. It roughly maintains CLI compatibility with YUM and defines a strict API for extensions and plugins."
You can get a list of DNF commands by running "dnf help" on CentOS 8:
herong$ dnf help
usage: dnf [options] COMMAND
List of Main Commands:
alias List or create command aliases
autoremove remove all unneeded packages that were originally
installed as dependencies
check check for problems in the packagedb
check-update check for available package upgrades
clean remove cached data
deplist List package's dependencies and what packages provide
them
distro-sync synchronize installed packages to the latest available
versions
downgrade Downgrade a package
group display, or use, the groups information
help display a helpful usage message
history display, or use, the transaction history
info display details about a package or group of packages
install install a package or packages on your system
list list a package or groups of packages
makecache generate the metadata cache
mark mark or unmark installed packages as installed by user.
module Interact with Modules.
provides find what package provides the given value
reinstall reinstall a package
remove remove a package or packages from your system
repolist display the configured software repositories
repoquery search for packages matching keyword
repository-packages run commands on top of all packages in given repository
search search package details for the given string
shell run an interactive DNF shell
swap run an interactive dnf mod for remove and install one
spec
updateinfo display advisories about packages
upgrade upgrade a package or packages on your system
upgrade-minimal upgrade, but only 'newest' package match which fixes
a problem that affects your system
Here are some commonly used DNF commands:
1. Search for package name by keywords.
herong$ dnf search java java-11-openjdk.x86_64 : OpenJDK Runtime Environment 11 java-11-openjdk-src.x86_64 : OpenJDK Source Bundle 11 java-11-openjdk-demo.x86_64 : OpenJDK Demos 11 ...
2. Get detailed information of a given package.
herong$ dnf info perl
Available Packages
Name : perl
Epoch : 4
Version : 5.26.3
Release : 416.el8
Architecture : x86_64
Size : 72 k
Source : perl-5.26.3-416.el8.src.rpm
Repository : AppStream
Summary : Practical Extraction and Report Language
URL : http://www.perl.org/
License : GPL+ or Artistic
Description : Perl is a high-level programming language with roots
: in C, sed, awk and shell scripting.
...
3. Install a package.
herong$ sudo dnf install perl ... Installed: perl-4:5.26.3-416.el8.x86_64 perl-Encode-Locale-1.05-9.el8.noarch perl-TermReadKey-2.37-7.el8.x86_64 ... Complete!
4. Find which package provides a given program command.
herong$ dnf provides java java-1.8.0-openjdk-1:1.8.0.312.b07-1.el8_4.x86_64 : OpenJDK 8 Runtime Environment Repo : AppStream Matched from: Provide : java = 1:1.8.0
5. Display installation history.
herong$ dnf history ID | Command line | Date and time | Action(s) | Altered --------------------------------------------------------------------------- 221 | install p7zip | 2021-06-04 | Install | 1 220 | install epel-release | 2021-06-04 | Install | 1 219 | install php-mysqlnd | 2021-05-31 | Install | 2 218 | install php-mbstring | 2021-05-31 | Install | 1 217 | install php-json | 2021-05-31 | Install | 1 216 | install mysql-server | 2021-05-31 | Install | 4 EE 215 | install mysql | 2021-05-31 | Install | 3 214 | install php | 2021-05-25 | Install | 5 213 | install httpd | 2021-05-25 | Install | 9 EE 212 | install mailx | 2021-05-21 | Install | 1 211 | install perl-App-cpanminus | 2021-05-19 | Install | 105 210 | install cifs-utils | 2021-05-18 | Install | 1 209 | install nmap | 2021-05-12 | Install | 1 208 | install telnet | 2021-05-11 | Install | 1 207 | remove mysql-server | 2021-05-11 | Removed | 7 206 | install mysql-server | 2021-05-11 | Install | 7 EE 205 | install dovecot | 2021-05-11 | Install | 2 EE 204 | install postfix | 2021-05-11 | Install | 1 203 | install tmux | 2021-05-11 | Install | 1 202 | update -y | 2021-05-11 | I, O, U | 886 EE
6. View log messages.
herong$ sudo tail -20 /var/log/dnf.log
... WARNING Repository extras is listed more than once in the configuration
... DEBUG Unknown configuration option: protect = 1 in
/etc/yum.repos.d/zing.repo
... DEBUG Making cache files for all metadata files.
... INFO Metadata cache refreshed recently.
... DDEBUG Cleaning up.
... INFO --- logging initialized ---
... DDEBUG timer: config: 179 ms
... DEBUG Loaded plugins: builddep, changelog, config-manager, copr, ...
... DEBUG DNF version: 4.2.23
... DDEBUG Command: dnf makecache --timer
... DDEBUG Installroot: /
... DDEBUG Releasever: 8
... DEBUG cachedir: /var/cache/dnf
... DDEBUG Base command: makecache
... DDEBUG Extra commands: ['makecache', '--timer']
Table of Contents
Cockpit - Web Portal for Administrator
SELinux - Security-Enhanced Linux
SSH Protocol and ssh/scp Commands
►Software Package Manager on CentOS - DNF and YUM
Manage DNF Package Repositories
Install and Manage Java Packages on CentOS
Install and Manage Perl Packages on CentOS
Install "git-core" for GitHub Packages on CentOS
Failed to Download Metadata for Repo ...
Replacing CentOS Repositories to Local Mirrors
vsftpd - Very Secure FTP Daemon