dnfコマンドの覚え書き

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!

タイトルとURLをコピーしました