第6章 ソフトウェア管理
6.1. YUM スタックへの主な変更
Red Hat Enterprise Linux (RHEL) 8 へのソフトウェアのインストールは、新しいバージョンの YUM ツールで行われます。 これは、DNF テクノロジー (YUM v4) に基づいています。
6.1.1. YUM v3 と比較した YUM v4 の利点
YUM v4 には、RHEL 7 で使用されていた、以前のバージョンの YUM v3 に対して、以下の利点が追加されました。
- パフォーマンスの向上
- モジューラーコンテンツへの対応
- ツーリングと統合するために適切に設計され、安定した API
新しい YUM v4 ツールと、以前のバージョンである RHEL 7 の YUM v3 ツールの相違点の詳細は、「Changes in DNF CLI compared to YUM」 を参照してください。
6.1.2. YUM v4 を使用する方法
ソフトウェアのインストール
コマンドラインから使用したり、設定ファイルを編集または作成する場合、YUM v4 は YUM v3 と互換性があります。
ソフトウェアをインストールするには、RHEL 7 と同じ yum
コマンドとオプションを使用できます。
詳細は「yum を使用したソフトウェアのインストール」を参照してください。
プラグインの可用性
以前の YUM v3 プラグインは、新しいバージョンの YUM v4 と互換性がありません。選択した yum プラグインおよびユーティリティーは、新しい DNF バックエンドに移植されており、RHEL 7 と同じ名前でインストールできます。このパッケージは互換性を持ったシンボリックリンクを提供するため、バイナリー、設定ファイル、ディレクトリーは通常の場所で確認できます。
プラグインが含まれなくなったり、置き換えがユーザビリティーを満たさなくなった場合は、「カスタマーポータルでサポートケースを作成および管理する」に記載されているように、Red Hat サポートにご連絡いただき、機能強化を要求してください。
詳細は「Plugin Interface」を参照してください。
API の可用性
YUM v3 が提供する以前の Python API は利用できなくなりました。YUM v4 (DNF Python API) が提供する安定し、完全に対応する新しい API に、使用しているプラグインおよびスクリプトを移行することが推奨されます。新しい DNF Python API のドキュメントは、「DNF API Reference」により提供されます。
Libdnf および Hawkey API (C および Python の両方) は不安定であると見なされているため、RHEL 8 のライフサイクル期間中に変更する可能性があります。
6.1.3. YUM 設定ファイルオプションの可用性
本セクションは、RHEL 7 から RHEL 8 の間に、/etc/yum.conf
ファイルおよび /etc/yum.repos.d/*.repo
ファイルの設定ファイルオプションに追加された変更点を簡単に紹介します。
表6.1 /etc/yum.conf ファイルの設定ファイルオプションの変更点
RHEL 7 オプション | RHEL 8 ステータス |
---|---|
alwaysprompt | 削除 |
assumeno | 利用可能 |
assumeyes | 利用可能 |
autocheck_running_kernel | 利用可能 |
autosavets | 削除 |
bandwidth | 利用可能 |
bugtracker_url | 利用可能 |
cachedir | 利用可能 |
check_config_file_age | 利用可能 |
clean_requirements_on_remove | 利用可能 |
color | 利用可能 |
color_list_available_downgrade | 利用可能 |
color_list_available_install | 利用可能 |
color_list_available_reinstall | 利用可能 |
color_list_available_running_kernel | 削除 |
color_list_available_upgrade | 利用可能 |
color_list_installed_extra | 利用可能 |
color_list_installed_newer | 利用可能 |
color_list_installed_older | 利用可能 |
color_list_installed_reinstall | 利用可能 |
color_list_installed_running_kernel | 削除 |
color_search_match | 利用可能 |
color_update_installed | 利用可能 |
color_update_local | 利用可能 |
color_update_remote | 利用可能 |
commands | 削除 |
config_file_path | 利用可能 |
debuglevel | 利用可能 |
deltarpm | 利用可能 |
deltarpm_metadata_percentage | 削除 |
deltarpm_percentage | 利用可能 |
depsolve_loop_limit | 削除 |
disable_excludes | 利用可能 |
diskspacecheck | 利用可能 |
distroverpkg | 削除 |
enable_group_conditionals | 削除 |
errorlevel | 利用可能 |
exactarchlist | 削除 |
exclude | 利用可能 |
exit_on_lock | 利用可能 |
fssnap_abort_on_errors | 削除 |
fssnap_automatic_keep | 削除 |
fssnap_automatic_post | 削除 |
fssnap_automatic_pre | 削除 |
fssnap_devices | 削除 |
fssnap_percentage | 削除 |
ftp_disable_epsv | 削除 |
gpgcheck | 利用可能 |
group_command | 削除 |
group_package_types | 利用可能 |
groupremove_leaf_only | 削除 |
history_list_view | 利用可能 |
history_record | 利用可能 |
history_record_packages | 利用可能 |
http_caching | 削除 |
include | 削除 |
installonly_limit | 利用可能 |
installonlypkgs | 利用可能 |
installrootkeep | 削除 |
ip_resolve | 利用可能 |
keepalive | 削除 |
keepcache | 利用可能 |
kernelpkgnames | 削除 |
loadts_ignoremissing | 削除 |
loadts_ignorenewrpm | 削除 |
loadts_ignorerpm | 削除 |
localpkg_gpgcheck | 利用可能 |
logfile | 削除 |
max_connections | 削除 |
mddownloadpolicy | 削除 |
mdpolicy | 削除 |
metadata_expire | 利用可能 |
metadata_expire_filter | 削除 |
minrate | 利用可能 |
mirrorlist_expire | 削除 |
multilib_policy | 利用可能 |
obsoletes | 利用可能 |
override_install_langs | 削除 |
overwrite_groups | 削除 |
password | 利用可能 |
payload_gpgcheck | 削除 |
persistdir | 利用可能 |
pluginconfpath | 利用可能 |
pluginpath | 利用可能 |
plugins | 利用可能 |
protected_multilib | 削除 |
protected_packages | 利用可能 |
proxy | 利用可能 |
proxy_password | 利用可能 |
proxy_username | 利用可能 |
query_install_excludes | 削除 |
recent | 利用可能 |
recheck_installed_requires | 削除 |
remove_leaf_only | 削除 |
repo_gpgcheck | 利用可能 |
repopkgsremove_leaf_only | 削除 |
reposdir | 利用可能 |
reset_nice | 利用可能 |
retries | 利用可能 |
rpmverbosity | 利用可能 |
shell_exit_status | 削除 |
showdupesfromrepos | 利用可能 |
skip_broken | 利用可能 |
skip_missing_names_on_install | 削除 |
skip_missing_names_on_update | 削除 |
ssl_check_cert_permissions | 削除 |
sslcacert | 利用可能 |
sslclientcert | 利用可能 |
sslclientkey | 利用可能 |
sslverify | 利用可能 |
syslog_device | 削除 |
syslog_facility | 削除 |
syslog_ident | 削除 |
throttle | 利用可能 |
timeout | 利用可能 |
tolerant | 削除 |
tsflags | 利用可能 |
ui_repoid_vars | 削除 |
upgrade_group_objects_upgrade | 利用可能 |
upgrade_requirements_on_install | 削除 |
usercache | 削除 |
username | 利用可能 |
usr_w_check | 削除 |
表6.2 /etc/yum.repos.d/*.repo ファイルの設定ファイルオプションの変更点
RHEL 7 オプション | RHEL 8 ステータス |
---|---|
async | 削除 |
bandwidth | 利用可能 |
baseurl | 利用可能 |
compare_providers_priority | 削除 |
cost | 利用可能 |
deltarpm_metadata_percentage | 削除 |
deltarpm_percentage | 利用可能 |
enabled | 利用可能 |
enablegroups | 利用可能 |
exclude | 利用可能 |
failovermethod | 削除 |
ftp_disable_epsv | 削除 |
gpgcakey | 削除 |
gpgcheck | 利用可能 |
gpgkey | 利用可能 |
http_caching | 削除 |
includepkgs | 利用可能 |
ip_resolve | 利用可能 |
keepalive | 削除 |
metadata_expire | 利用可能 |
metadata_expire_filter | 削除 |
metalink | 利用可能 |
mirrorlist | 利用可能 |
mirrorlist_expire | 削除 |
name | 利用可能 |
password | 利用可能 |
proxy | 利用可能 |
proxy_password | 利用可能 |
proxy_username | 利用可能 |
repo_gpgcheck | 利用可能 |
repositoryid | 削除 |
retries | 利用可能 |
skip_if_unavailable | 利用可能 |
ssl_check_cert_permissions | 削除 |
sslcacert | 利用可能 |
sslclientcert | 利用可能 |
sslclientkey | 利用可能 |
sslverify | 利用可能 |
throttle | 利用可能 |
timeout | 利用可能 |
ui_repoid_vars | 削除 |
username | 利用可能 |
6.1.4. YUM v4 機能の動作が異なる
YUM v3 機能の一部の挙動が、YUM v4 と異なる可能性があります。この変更がワークフローに影響を及ぼす場合は、「カスタマーポータルでサポートケースを作成および管理する」に従って、Red Hat サポートケースを作成してください。
6.1.4.1. yum list がエントリーを重複して表示
yum list
コマンドを使用してパッケージの一覧を表示すると、エントリーが重複して表示される可能性があります。エントリーは、リポジトリー単位で表示されるため、バッケージ名とバージョンが同じものが複数のリポジトリーに存在すると、そのリポジトリーがすべて表示されます。
これは意図的であり、必要に応じて、このようなパッケージを区別できます。
たとえば、repo1 および repo2 で package-1.2 が利用可能な場合、YUM v4 は両方のインスタンスを出力します。
[…] package-1.2 repo1 package-1.2 repo2 […]
一方、以前のバージョンの YUM v3 コマンドではこのような重複は除外されるため、インスタンスは 1 つしか表示されません。
[…] package-1.2 repo1 […]
6.1.5. トランザクション履歴のログファイルの変更
本セクションでは、RHEL 7 から RHEL 8 まで間にトランザクション履歴ログファイルに追加された変更点を簡単に紹介します。
RHEL 7 では、/var/log/yum.log
ファイルには以下が保存されます。
- ソフトウェアパッケージのインストール、更新、および削除のレジストリー
- yum および PackageKit からのトランザクション
RHEL 8 では、/var/log/yum.log
ファイルに直接相当するものはありません。PackageKit、microdnf などのトランザクションに関する情報を表示するには、yum history
コマンドを使用します。
または、/var/log/dnf.rpm.log
ファイルを検索することもできますが、このログファイルに PackageKit および microdnf からのトランザクションが含まれず、保存された情報を定期的に削除するログローテーションがあります。
6.2. RPM の主な機能および変更
Red Hat Enterprise Linux 8 (RHEL) には RPM 4.14 が同梱されています。このバージョンでは、RHEL 7 で利用できた RPM 4.11 に対する機能拡張が数多く追加されました。
主な変更には以下のものがあります。
- 複数の debuginfo パッケージを同時にインストールできます。
- 弱い依存関係への対応。
- 豊富なブール型依存関係への対応。
- 4 GB を超えるファイルのパッケージ化への対応。
- ファイルトリガーへの対応。
-
新しい
--nopretrans
スイッチおよび--noposttrans
スイッチはそれぞれ、%pretrans
スクリプトレットおよび%posttrans
スクリプトレットの実行を無効にします。 -
新しい
--noplugins
スイッチは、すべての RPM プラグインの読み込みおよび実行を無効にします。 -
システムロギングプロトコル (syslog) により RPM アクティビティーをロギングする新規の
syslog
プラグイン。 rpmbuild
コマンドは、ソースパッケージからすべてのビルド手順を直接実行できるようになりました。これは、
-r[abpcils]
オプションのいずれかと共にrpmbuild
を使用すると可能になります。再インストールモードをサポートします。
これは、新しい
--reinstall
オプションにより保証されます。インストールされているパッケージを再インストールするには、次の構文を使用します。rpm {--reinstall} [install-options] PACKAGE_FILE
このオプションにより、新しいパッケージが正しくインストールされ、古いパッケージが削除されます。
SSD 保存モードのサポート。
これは、
/usr/lib/rpm/macros
ファイルで利用可能な新しい%_minimize_writes
マクロで保証されます。マクロは、デフォルトで 0 に設定されます。SSD ディスクへの書き込みを最小にするには、%_minimize_writes
を 1 に設定します。-
RPM ペイロードを tar アーカイブに変換する新しい
rpm2archive
ユーティリティー。
詳細は「RHEL 8 の新機能」を参照してください。
以下は、主な変更点です。
- 厳密なスペックパーサー
- 非冗長モードで出力を確認する簡易署名
再現可能なビルド (同一パッケージを作成するビルド) のサポートの改善
- ビルド時間の設定
- ファイルの mtime (ファイル変更日時) の設定
- buildhost の設定
-
-p
オプションを使用して、アンインストールされた PACKAGE_FILE をクエリーすることは任意になりました。このユースケースでは、rpm
コマンドが、-p
オプションの有無にかかわらず、同じ結果を返すようになりました。-p
オプションが必要な唯一のユースケースは、ファイル名がrpmdb
データベース内のいずれのProvides
とも一致しないことを確認することです。 マクロの追加と廃止事項
-
%makeinstall
マクロが非推奨になりました。プログラムをインストールするには、代わりに%make_install
マクロを使用します。
-
rpmbuild --sign
コマンドが非推奨になりました。rpmbuild
コマンドで--sign
オプションを使用することが非推奨になったことに注意してください。既存のパッケージに署名を追加するには、代わりにrpm --addsign
を使用します。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。