RHEL系のLinuxでシステム構築やシステム管理で欠かすことのできないdnfコマンドですが、よく使いそうなものをまとめてみました。
dnfコマンドの構文
dnfコマンドは下記のような構文にて実行されます。
$ dnf オプション サブコマンド 引数
よく使うコマンド
dnfコマンドのオプションとサブコマンドはたくさんありますが、間違いなく使うであろうdnfコマンドの例です。
# dnf info RPMパッケージ名 ・・・ RPMパッケージの情報を知りたい時
# dnf deplist RPMパッケージ名 ・・・ RPMパッケージの依存関係を知りたい時
# dnf provides ファイル名 ・・・ ファイル名からRPMパッケージを知りたい時
# dnf install RPMパッケージ名 ・・・ RPMパッケージのインストールをしたい時
# dnf remove RPMパッケージ名 ・・・ RPMパッケージのアンインストールをしたい時
# dnf --enablerepo=有効にするリポジトリー名 list RPMパッケージ名 ・・・ リポジトリーを有効にしてリスト表示したい時
# dnf --downloaddir=保存先 --downloadonly install RPMパッケージ名 ・・・ 保存先を指定して依存するパッケージも併せてダウンロードしたい時
# dnf --diablerepo=* localinstall *.rpm ・・・ リポジトリーを無効にしてローカルディスクからインストールしたい時
RPMパッケージの情報を知りたい
# dnf info ftp ・・・ ftpパッケージの情報を知る
Last metadata expiration check: 0:12:53 ago on Fri 13 Dec 2024 05:24:44 AM JST.
Available Packages ・・・ 利用可能なパッケージ(要するにインストールされていない)
Name : ftp
Version : 0.17
Release : 89.el9
Architecture : x86_64
Size : 112 k
Source : ftp-0.17-89.el9.src.rpm
Repository : @System
From repo : appstream
Summary : The standard UNIX FTP (File Transfer Protocol) client
URL : ftp://ftp.linux.org.uk/pub/linux/Networking/netkit
License : BSD with advertising
Description : The ftp package provides the standard UNIX command-line FTP (File
: Transfer Protocol) client. FTP is a widely used protocol for
: transferring files over the Internet and for archiving files.
:
: If your system is on a network, you should install ftp in order
: to do file transfers.
RPMパッケージの依存関係を知りたい
対象のRPMパッケージの依存関係を知りたい時に調べることができます。対象のRPMパッケージをインストールするには、依存関係で表示されるRPMパッケージが必要になります。
# dnf deplist ftp
Last metadata expiration check: 0:33:43 ago on Fri 13 Dec 2024 05:24:44 AM JST.
package: ftp-0.17-89.el9.x86_64 ・・・ 対象のパッケージ名
dependency: libc.so.6(GLIBC_2.34)(64bit) ・・・ 依存しているファイル名
provider: glibc-2.34-125.el9_5.1.x86_64 ・・・ 依存しているファイルが含まれているパッケージ名
dependency: libreadline.so.8()(64bit)
provider: readline-8.1-4.el9.x86_64
dependency: rtld(GNU_HASH)
provider: glibc-2.34-125.el9_5.1.i686
provider: glibc-2.34-125.el9_5.1.x86_64
ファイル名からどのRPMパッケージに含まれているかを知りたい
ファイル名はわかるけど、どのRPMパッケージをインストールすればわからない時に使えます。
# dnf provides /usr/bin/ftp
Last metadata expiration check: 0:23:09 ago on Fri 13 Dec 2024 05:24:44 AM JST.
ftp-0.17-89.el9.x86_64 : The standard UNIX FTP (File Transfer Protocol) client
Repo : appstream
Matched from:
Filename : /usr/bin/ftp
# dnf provides */httpd.conf ・・・ ファイル名しかわからない時
Last metadata expiration check: 0:27:28 ago on Fri 13 Dec 2024 05:24:44 AM JST.
httpd-core-2.4.62-1.el9.x86_64 : httpd minimal core
Repo : appstream
Matched from:
Filename : /etc/httpd/conf/httpd.conf
Filename : /usr/lib/tmpfiles.d/httpd.conf
httpd-filesystem-2.4.62-1.el9.noarch : The basic directory layout for the Apache
: HTTP Server
Repo : appstream
Matched from:
Filename : /usr/lib/sysusers.d/httpd.conf
RPMパッケージのインストール
# dnf install ftp ・・・ ftpパッケージをインストールする
Last metadata expiration check: 0:07:16 ago on Fri 13 Dec 2024 05:24:44 AM JST.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
ftp x86_64 0.17-89.el9 appstream 61 k
Transaction Summary
================================================================================
Install 1 Package
Total download size: 61 k
Installed size: 112 k
Is this ok [y/N]: y ・・・ インストールしても良いかどうか
Downloading Packages:
ftp-0.17-89.el9.x86_64.rpm 363 kB/s | 61 kB 00:00
--------------------------------------------------------------------------------
Total 38 kB/s | 61 kB 00:01
AlmaLinux 9 - AppStream 887 kB/s | 3.1 kB 00:00
Importing GPG key 0xB86B3716:
Userid : "AlmaLinux OS 9 <packager@almalinux.org>"
Fingerprint: BF18 AC28 7617 8908 D6E7 1267 D36C B86C B86B 3716
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9
Is this ok [y/N]: y ・・・ GPGキーをインポートしても良いかどうか(最初の時だけ聞いてくる)
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : ftp-0.17-89.el9.x86_64 1/1
Running scriptlet: ftp-0.17-89.el9.x86_64 1/1
Verifying : ftp-0.17-89.el9.x86_64 1/1
Installed:
ftp-0.17-89.el9.x86_64
Complete!
RPMパッケージのアンインストール
# dnf remove ftp
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Removing:
ftp x86_64 0.17-89.el9 @appstream 112 k
Transaction Summary
================================================================================
Remove 1 Package
Freed space: 112 k
Is this ok [y/N]: y ・・・ アンインストールしても良いかどうか
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Erasing : ftp-0.17-89.el9.x86_64 1/1
Running scriptlet: ftp-0.17-89.el9.x86_64 1/1
Verifying : ftp-0.17-89.el9.x86_64 1/1
Removed:
ftp-0.17-89.el9.x86_64
Complete!
指定リポジトリーを有効にしてインストールしたい
# dnf --enablerepo=epel list certbot ・・・ EPELリポジトリーを有効にしてcertbotをリスト表示する
Last metadata expiration check: 3:04:41 ago on Sun 15 Dec 2024 04:14:34 AM JST.
Available Packages
certbot.noarch 2.11.0-1.el9 epel
保存先を指定して依存するパッケージも併せてダウンロードしたい
httpdのRPMパッケージをダウンロードする際、依存するパッケージもダウンロードすることができます。
# dnf --downloaddir=/work --downloadonly install httpd
Last metadata expiration check: 3:11:23 ago on Sun 15 Dec 2024 04:14:34 AM JST.
Dependencies resolved.
==========================================================================================
Package Architecture Version Repository Size
==========================================================================================
Installing:
httpd x86_64 2.4.62-1.el9 appstream 45 k
Installing dependencies:
almalinux-logos-httpd noarch 90.5.1-1.1.el9 appstream 18 k
apr x86_64 1.7.0-12.el9_3 appstream 122 k
apr-util x86_64 1.6.1-23.el9 appstream 94 k
apr-util-bdb x86_64 1.6.1-23.el9 appstream 12 k
httpd-core x86_64 2.4.62-1.el9 appstream 1.4 M
httpd-filesystem noarch 2.4.62-1.el9 appstream 12 k
httpd-tools x86_64 2.4.62-1.el9 appstream 79 k
Installing weak dependencies:
apr-util-openssl x86_64 1.6.1-23.el9 appstream 14 k
mod_http2 x86_64 2.0.26-2.el9_4.1 appstream 162 k
mod_lua x86_64 2.4.62-1.el9 appstream 58 k
Transaction Summary
==========================================================================================
Install 11 Packages
Total download size: 2.0 M
Installed size: 6.1 M
DNF will only download packages for the transaction.
Is this ok [y/N]: y
Downloading Packages:
(1/11): almalinux-logos-httpd-90.5.1-1.1.el9.noarch.rpm 79 kB/s | 18 kB 00:00
(2/11): apr-util-bdb-1.6.1-23.el9.x86_64.rpm 62 kB/s | 12 kB 00:00
(3/11): apr-util-1.6.1-23.el9.x86_64.rpm 169 kB/s | 94 kB 00:00
(4/11): apr-util-openssl-1.6.1-23.el9.x86_64.rpm 66 kB/s | 14 kB 00:00
(5/11): apr-1.7.0-12.el9_3.x86_64.rpm 178 kB/s | 122 kB 00:00
(6/11): httpd-2.4.62-1.el9.x86_64.rpm 231 kB/s | 45 kB 00:00
(7/11): httpd-filesystem-2.4.62-1.el9.noarch.rpm 157 kB/s | 12 kB 00:00
(8/11): httpd-tools-2.4.62-1.el9.x86_64.rpm 406 kB/s | 79 kB 00:00
(9/11): mod_lua-2.4.62-1.el9.x86_64.rpm 210 kB/s | 58 kB 00:00
(10/11): mod_http2-2.0.26-2.el9_4.1.x86_64.rpm 268 kB/s | 162 kB 00:00
(11/11): httpd-core-2.4.62-1.el9.x86_64.rpm 131 kB/s | 1.4 MB 00:10
------------------------------------------------------------------------------------------
Total 161 kB/s | 2.0 MB 00:12
Complete!
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
# ls -l /work/*.rpm
-rw-r--r--. 1 root root 18425 Dec 15 07:26 /work/almalinux-logos-httpd-90.5.1-1.1.el9.noarch.rpm
-rw-r--r--. 1 root root 124935 Dec 15 07:26 /work/apr-1.7.0-12.el9_3.x86_64.rpm
-rw-r--r--. 1 root root 96189 Dec 15 07:26 /work/apr-util-1.6.1-23.el9.x86_64.rpm
-rw-r--r--. 1 root root 12172 Dec 15 07:26 /work/apr-util-bdb-1.6.1-23.el9.x86_64.rpm
-rw-r--r--. 1 root root 14728 Dec 15 07:26 /work/apr-util-openssl-1.6.1-23.el9.x86_64.rpm
-rw-r--r--. 1 root root 45652 Dec 15 07:26 /work/httpd-2.4.62-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 1456414 Dec 15 07:26 /work/httpd-core-2.4.62-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 11820 Dec 15 07:26 /work/httpd-filesystem-2.4.62-1.el9.noarch.rpm
-rw-r--r--. 1 root root 81309 Dec 15 07:26 /work/httpd-tools-2.4.62-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 166327 Dec 15 07:26 /work/mod_http2-2.0.26-2.el9_4.1.x86_64.rpm
-rw-r--r--. 1 root root 59759 Dec 15 07:26 /work/mod_lua-2.4.62-1.el9.x86_64.rpm
リポジトリーを無効にしてローカルディスクからインストールしたい
# ls -l /work/*.rpm
-rw-r--r--. 1 root root 18425 Dec 15 07:26 /work/almalinux-logos-httpd-90.5.1-1.1.el9.noarch.rpm
-rw-r--r--. 1 root root 124935 Dec 15 07:26 /work/apr-1.7.0-12.el9_3.x86_64.rpm
-rw-r--r--. 1 root root 96189 Dec 15 07:26 /work/apr-util-1.6.1-23.el9.x86_64.rpm
-rw-r--r--. 1 root root 12172 Dec 15 07:26 /work/apr-util-bdb-1.6.1-23.el9.x86_64.rpm
-rw-r--r--. 1 root root 14728 Dec 15 07:26 /work/apr-util-openssl-1.6.1-23.el9.x86_64.rpm
-rw-r--r--. 1 root root 45652 Dec 15 07:26 /work/httpd-2.4.62-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 1456414 Dec 15 07:26 /work/httpd-core-2.4.62-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 11820 Dec 15 07:26 /work/httpd-filesystem-2.4.62-1.el9.noarch.rpm
-rw-r--r--. 1 root root 81309 Dec 15 07:26 /work/httpd-tools-2.4.62-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 166327 Dec 15 07:26 /work/mod_http2-2.0.26-2.el9_4.1.x86_64.rpm
-rw-r--r--. 1 root root 59759 Dec 15 07:26 /work/mod_lua-2.4.62-1.el9.x86_64.rpm
# dnf --disablerepo=* localinstall /work/*.rpm
Dependencies resolved.
=============================================================================================
Package Architecture Version Repository Size
=============================================================================================
Installing:
almalinux-logos-httpd noarch 90.5.1-1.1.el9 @commandline 18 k
apr x86_64 1.7.0-12.el9_3 @commandline 122 k
apr-util x86_64 1.6.1-23.el9 @commandline 94 k
apr-util-bdb x86_64 1.6.1-23.el9 @commandline 12 k
apr-util-openssl x86_64 1.6.1-23.el9 @commandline 14 k
httpd x86_64 2.4.62-1.el9 @commandline 45 k
httpd-core x86_64 2.4.62-1.el9 @commandline 1.4 M
httpd-filesystem noarch 2.4.62-1.el9 @commandline 12 k
httpd-tools x86_64 2.4.62-1.el9 @commandline 79 k
mod_http2 x86_64 2.0.26-2.el9_4.1 @commandline 162 k
mod_lua x86_64 2.4.62-1.el9 @commandline 58 k
Transaction Summary
=============================================================================================
Install 11 Packages
Total size: 2.0 M
Installed size: 6.1 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : apr-1.7.0-12.el9_3.x86_64 1/11
Installing : apr-util-bdb-1.6.1-23.el9.x86_64 2/11
Installing : apr-util-openssl-1.6.1-23.el9.x86_64 3/11
Installing : apr-util-1.6.1-23.el9.x86_64 4/11
Installing : httpd-tools-2.4.62-1.el9.x86_64 5/11
Running scriptlet: httpd-filesystem-2.4.62-1.el9.noarch 6/11
Installing : httpd-filesystem-2.4.62-1.el9.noarch 6/11
Installing : httpd-core-2.4.62-1.el9.x86_64 7/11
Installing : mod_lua-2.4.62-1.el9.x86_64 8/11
Installing : almalinux-logos-httpd-90.5.1-1.1.el9.noarch 9/11
Installing : mod_http2-2.0.26-2.el9_4.1.x86_64 10/11
Installing : httpd-2.4.62-1.el9.x86_64 11/11
Running scriptlet: httpd-2.4.62-1.el9.x86_64 11/11
Verifying : almalinux-logos-httpd-90.5.1-1.1.el9.noarch 1/11
Verifying : apr-1.7.0-12.el9_3.x86_64 2/11
Verifying : apr-util-1.6.1-23.el9.x86_64 3/11
Verifying : apr-util-bdb-1.6.1-23.el9.x86_64 4/11
Verifying : apr-util-openssl-1.6.1-23.el9.x86_64 5/11
Verifying : httpd-2.4.62-1.el9.x86_64 6/11
Verifying : httpd-core-2.4.62-1.el9.x86_64 7/11
Verifying : httpd-filesystem-2.4.62-1.el9.noarch 8/11
Verifying : httpd-tools-2.4.62-1.el9.x86_64 9/11
Verifying : mod_http2-2.0.26-2.el9_4.1.x86_64 10/11
Verifying : mod_lua-2.4.62-1.el9.x86_64 11/11
Installed:
almalinux-logos-httpd-90.5.1-1.1.el9.noarch apr-1.7.0-12.el9_3.x86_64
apr-util-1.6.1-23.el9.x86_64 apr-util-bdb-1.6.1-23.el9.x86_64
apr-util-openssl-1.6.1-23.el9.x86_64 httpd-2.4.62-1.el9.x86_64
httpd-core-2.4.62-1.el9.x86_64 httpd-filesystem-2.4.62-1.el9.noarch
httpd-tools-2.4.62-1.el9.x86_64 mod_http2-2.0.26-2.el9_4.1.x86_64
mod_lua-2.4.62-1.el9.x86_64
Complete!