CentOS 8 で変更されたコマンド(サービス)について

カテゴリ:Linuxコマンド

2019年9月25日にリリースされたCentOS 8ですが、さくらやConoHaなど主要なVPSでもOSのテンプレートイメージとして対応してきました。
そこで今回はCentOS 7からCentOS 8で変更された以下の3つのコマンド(サービス)について紹介したいと思います。
CentOS 7CentOS 8
yumdnf
ntpdchrony
iptablesnftables

それでは1つ1つのコマンドを見ていきたいと思います。

dnf

パッケージ管理ツールであるyumはdnfコマンドに変更されています。

とはいえ、yumコマンドはdnf-3にシンボリックリンクされており、yumを実行するとdnfが呼び出されます

# ls -la /usr/bin/yum
lrwxrwxrwx. 1 root root 5  5月 13  2019 /usr/bin/yum -> dnf-3
# yum --help
usage: dnf [options] COMMAND

ちなみに、dnfコマンドもdnf-3にシンボリックリンクされています。

# ls -la /usr/bin/dnf
lrwxrwxrwx. 1 root root 5  5月 13  2019 /usr/bin/dnf -> dnf-3

yumは完全にdnfに置き換わっていますが、以下のようにdnfのサブコマンドはyumと変わらないため、特に違和感なく使用することができますね。

Apacheをインストールする場合:

# dnf install httpd
CentOS-8 - AppStream                                                                            1.8 kB/s | 4.3 kB     00:02
CentOS-8 - Base                                                                                 1.5 kB/s | 3.9 kB     00:02
CentOS-8 - Extras                                                                               917  B/s | 1.5 kB     00:01
依存関係が解決しました。
================================================================================================================================
 パッケージ                    アーキテクチャー  バージョン                                          リポジトリ           サイズ
================================================================================================================================
Installing:
 httpd                         x86_64            2.4.37-12.module_el8.0.0+185+5908b0db               AppStream            1.7 M
依存関係をインストール中:
 apr                           x86_64            1.6.3-9.el8                                         AppStream            125 k
 apr-util                      x86_64            1.6.1-6.el8                                         AppStream            105 k
 centos-logos-httpd            noarch            80.5-2.el8                                          AppStream             24 k
 httpd-filesystem              noarch            2.4.37-12.module_el8.0.0+185+5908b0db               AppStream             35 k
 httpd-tools                   x86_64            2.4.37-12.module_el8.0.0+185+5908b0db               AppStream            102 k
 mod_http2                     x86_64            1.11.3-3.module_el8.0.0+185+5908b0db                AppStream            158 k
弱い依存関係をインストール中:
 apr-util-bdb                  x86_64            1.6.1-6.el8                                         AppStream             25 k
 apr-util-openssl              x86_64            1.6.1-6.el8                                         AppStream             27 k
Enabling module streams:
 httpd                                           2.4

トランザクションの概要
================================================================================================================================
インストール  9 パッケージ

ダウンロードサイズの合計: 2.3 M
インストール済みのサイズ: 6.0 M
これでよろしいですか? [y/N]:

パッケージをアップデートする場合:

# dnf update
メタデータの期限切れの最終確認: 0:00:52 時間前の 2019年11月18日 00時59分24秒 に実施しました。
依存関係が解決しました。
================================================================================================================================
 パッケージ                                アーキテクチャー
                                                      バージョン                                            リポジトリ    サイズ
================================================================================================================================
Installing:
 kernel                                    x86_64     4.18.0-80.11.2.el8_0                                  BaseOS        424 k
 kernel-core                               x86_64     4.18.0-80.11.2.el8_0                                  BaseOS         24 M
 kernel-modules                            x86_64     4.18.0-80.11.2.el8_0                                  BaseOS         20 M
Upgrading:
 anaconda-core                             x86_64     29.19.0.43-1.el8_0                                    AppStream     2.1 M
 anaconda-gui                              x86_64     29.19.0.43-1.el8_0                                    AppStream     500 k
 anaconda-tui                              x86_64     29.19.0.43-1.el8_0                                    AppStream     256 k
 anaconda-widgets                          x86_64     29.19.0.43-1.el8_0                                    AppStream     191 k
...
トランザクションの概要
================================================================================================================================
インストール      6 パッケージ
アップグレード  166 パッケージ

ダウンロードサイズの合計: 252 M
これでよろしいですか? [y/N]:

dnfの主要サブコマンドの一覧

サブコマンド 説明
alias コマンドエイリアスの一覧表示または作成
autoremove 当初は依存関係としてインストールされた不要なパッケージをすべて削除します
check packagedb の問題を確認します
check-update 利用可能なパッケージのアップグレードを確認します
clean キャッシュデータを削除します
deplist パッケージの依存関係とこれを提供するパッケージがどれかを一覧表示します
distro-sync インストール済みパッケージを利用可能な最新バージョンに同期します
downgrade パッケージをダウングレードします
group グループ情報を表示または使用します
help 有用な使用方法のメッセージを表示します
history トランザクション履歴を表示、または使用します
info パッケージもしくはパッケージのグループについての詳細を表示します
install システムに 1 つのパッケージまたは複数のパッケージをインストールします
list パッケージまたはパッケージのグループを一覧表示します
makecache メタデータキャッシュを生成します
mark インストール済みパッケージをユーザーがインストールしたとマークするか、またはマークをはずします。
module モジュールと対話します。
provides どのパッケージが特定の値を提供するか見つけます
reinstall パッケージを再インストールします
remove システムから 1 つのパッケージまたは複数のパッケージを削除します
repolist 設定済みのソフトウェアリポジトリーを表示します
repoquery キーワードに一致するパッケージを検索します
repository-packages 特定のリポジトリーのすべてのパッケージに対して、コマンドを実行します
search 特定の文字列のパッケージの詳細を検索します
shell 対話式 DNF シェルを実行します
swap 1 つの spec を削除およびインストールするために対話式 dnf モッドを実行します
updateinfo パッケージに関する勧告を表示します
upgrade システム上の 1 つのパッケージまたは複数のパッケージをアップグレードします
upgrade-minimal システムに影響する問題を修正する「最新の」パッケージに一致したもののみをアップグレードします

chrony

次にNTPクライアント/NTPサーバー(自動時刻同期サービス)であるntpdはchronyに置き換わっています。

ちなみにntpqコマンドは無くなっており、ntpq -pを実行してもコマンドが見つからない旨が出力されます。

# ntpq -p
bash: ntpq: コマンドが見つかりませんでした...
ファイルの探索に失敗しました: Cannot update read-only repo

chronyはchronycというコマンドに続けて以下のようなサブコマンドを指定して実行します。

sources

sourcesサブコマンドは、chronydがアクセスしている現在のタイムソースに関する情報を表示します。

# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ x.ns.gin.ntt.net              2   6   377    46    +26us[ +101us] +/-   76ms
^+ 162.159.200.1                 3   6   377    45  +2066us[+2066us] +/-   62ms
^* 162.159.200.123               3   6   377    56  +1086us[+1161us] +/-   61ms
^+ y.ns.gin.ntt.net              2   6   377    63  -3452us[-3495us] +/-  107ms

tracking

trackingサブコマンドは、システムのクロックパフォーマンスに関するパラメーターを表示します。出力の例を以下に示します。

# chronyc tracking
Reference ID    : A29FC87B (162.159.200.123)
Stratum         : 4
Ref time (UTC)  : Sun Nov 17 13:32:44 2019
System time     : 0.000451567 seconds slow of NTP time
Last offset     : -0.000153081 seconds
RMS offset      : 0.000854766 seconds
Frequency       : 1.127 ppm slow
Residual freq   : -0.028 ppm
Skew            : 2.682 ppm
Root delay      : 0.118826732 seconds
Root dispersion : 0.000958690 seconds
Update interval : 64.3 seconds
Leap status     : Normal

sourcestats

sourcesサブコマンドは、chronydによって現在検査されている各ソースの統計情報(ドリフト率とオフセット推定プロセスに関する情報)を表示します。

# chronyc sourcestats
210 Number of sources = 4
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
ec2-13-230-38-136.ap-nor>  15   6   718     -0.698      6.222  +1062us  1481us
x.ns.gin.ntt.net           15   8   718     +2.038      2.813   +472us   560us
103.202.217.106            15  10   719     -0.364      3.656   -369us   757us
jptyo5-ntp-004.aaplimg.c>   6   4   323     +0.304      6.590    +12us   198us

chronycコマンドのオプション一覧

オプション 説明
-4 このオプションを使用すると、ホスト名はIPv4アドレスのみに解決されます。
-6 このオプションを使用すると、ホスト名はIPv6アドレスのみに解決されます。
-n このオプションは、遅いDNSルックアップを避けるため、IPアドレスのホスト名への解決を無効にします。長いアドレスは、列に収まるように切り捨てられません。
-c このオプションにより、レポートをカンマ区切り値(CSV)形式で印刷できます。 IPアドレスはホスト名に解決されず、エポックと秒単位の値が他の単位に変換されないため、時間は秒数として出力されます。
-d このオプションは、chronycがデバッグサポート付きでコンパイルされた場合、デバッグメッセージの出力を有効にします。
-m 通常、コマンドラインのすべての引数は1つのコマンドとして解釈されます。このオプションを使用すると、複数のコマンドを指定できます。各引数はコマンド全体として解釈されます。
-h host このオプションにより、ユーザーはchronydプログラムを実行しているホスト(またはコンマ区切りのアドレスのリスト)に接続するように指定できます。これにより、最初にSSHを介して他のホストに接続する必要なく、リモート監視が可能になります。デフォルトでは、chronycが実行されている同じホストで実行されているchronydに接続します。
-p port このオプションにより、ユーザーは、ターゲットchronydが監視接続に使用しているUDPポート番号を指定できます。デフォルトは323です。これを変更する必要はほとんどありません。
-f file このオプションは無視され、互換性のためにのみ提供されています。
-a このオプションは無視され、互換性のためにのみ提供されています。
-v このオプションを使用すると、chronycは端末にバージョン番号を表示して終了します。

nftables

iptablesを含め、ebtables、arptables、iptables、ip6tablesコマンドはnftablesに統合されました。

iptablesのバージョンを確認するとnftablesの互換レイヤである事が括弧つきで表示されます。

# iptables --version
iptables v1.8.2 (nf_tables)

そしてiptablesはxtables-nft-multiへのシンボリックリンクとなっていることが分かります。

# ls -la /usr/sbin/iptables
lrwxrwxrwx. 1 root root 17  5月 11  2019 /usr/sbin/iptables -> xtables-nft-multi

但し、nftablesに統合されたというだけであり、iptablesコマンド自体はこれまでと同様に使用することが可能です。

# iptables --help
iptables v1.8.2

Usage: iptables -[ACD] chain rule-specification [options]
        iptables -I chain [rulenum] rule-specification [options]
        iptables -R chain rulenum rule-specification [options]
        iptables -D chain rulenum [options]
        iptables -[LS] [chain [rulenum]] [options]
        iptables -[FZ] [chain] [options]
        iptables -[NX] chain
        iptables -E old-chain-name new-chain-name
        iptables -P chain target [options]
        iptables -h (print this help information)

また、CentOS 8 のファイアウォールサービスであるfirewalldは、バックエンドとしてnftablesを使用しています。

# cat /etc/firewalld/firewalld.conf | grep FirewallBackend
# FirewallBackend
FirewallBackend=nftables

このためfirewalldを使用している場合は、バックエンドが変わっただけであるため、これまで通りfirewalldを使用し続けられます。

一方、firewalldを介さずにnftablesを直接操作する場合は、nftコマンドを使用します。

# nft list ruleset
table ip filter {
        chain INPUT {
                type filter hook input priority 0; policy accept;
        }

        chain FORWARD {
                type filter hook forward priority 0; policy accept;
        }

        chain OUTPUT {
                type filter hook output priority 0; policy accept;
        }
}
...

なお、iptablesやfirewalldからnftablesに設定を移行することも可能ですが、基本的にはフロントエンドであるfirewalldを使用するのがバックエンドを気にしなくて済むため良いのではないかと思います。

以上、CentOS 8 で変更されたコマンド(サービス)について簡単に解説いたしました。

公開日時: 2019年11月18日  11:53:42

本格的なスキルを身につける

Linux/ITエンジニアとしてのスキルを身につけるにはLPI-Japanアカデミック認定校リナックスアカデミーがおすすめですよ。

Linuxコマンドに戻る

このページのトップに戻る