CentOS 8 で変更されたコマンド(サービス)について
カテゴリ:Linuxコマンド
2019年9月25日にリリースされたCentOS 8ですが、さくらやConoHaなど主要なVPSでもOSのテンプレートイメージとして対応してきました。そこで今回はCentOS 7からCentOS 8で変更された以下の3つのコマンド(サービス)について紹介したいと思います。
CentOS 7 | CentOS 8 |
---|---|
yum | dnf |
ntpd | chrony |
iptables | nftables |
それでは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