Yellowdog Updater Modified
はじめに
[編集]Yellowdog Updater Modified(略称: YUM)は、RPMベースのLinuxディストリビューション(特にRed Hat Enterprise Linux (RHEL)、CentOS、Fedoraなど)で広く使用されていたパッケージ管理ツールです。YUMは、依存関係の自動解決やリポジトリからのパッケージ取得を簡単に行うことができ、システム管理者やユーザーにとって非常に便利なツールでした。しかし、時代の変化とともにYUMは廃止(Obsolate)され、後継ツールとしてDNF(Dandified Yum)が採用されました。このハンドブックでは、YUMの基本的な使い方から、その廃止理由と後継ツールについて解説します。
YUMの基本概念
[編集]YUMは、RPMパッケージのインストール、更新、削除を行うためのコマンドラインツールです。依存関係の自動解決やリポジトリからのパッケージ取得をサポートし、ユーザーが簡単にソフトウェアを管理できるように設計されていました。YUMは、以下のような特徴を持っていました。
- 依存関係の自動解決: パッケージのインストール時に必要な依存パッケージを自動的に解決。
- リポジトリのサポート: 複数のリポジトリからパッケージを取得し、システムにインストール。
- トランザクションのサポート: パッケージのインストールや更新をトランザクションとして管理。
YUMの基本的な使い方
[編集]パッケージのインストール
[編集]新しいパッケージをインストールするには、以下のコマンドを使用します。
sudo yum install package_name
パッケージの更新
[編集]インストール済みのパッケージを更新するには、以下のコマンドを使用します。
sudo yum update package_name
すべてのパッケージを更新するには、パッケージ名を指定せずに実行します。
sudo yum update
パッケージの削除
[編集]パッケージを削除するには、以下のコマンドを使用します。
sudo yum remove package_name
パッケージの検索
[編集]パッケージを検索するには、以下のコマンドを使用します。
yum search keyword
パッケージ情報の表示
[編集]特定のパッケージの詳細情報を表示するには、以下のコマンドを使用します。
yum info package_name
リポジトリの管理
[編集]リポジトリの有効化/無効化
[編集]特定のリポジトリを有効化または無効化するには、以下のコマンドを使用します。
sudo yum-config-manager --enable repository_id sudo yum-config-manager --disable repository_id
リポジトリの追加
[編集]新しいリポジトリを追加するには、.repo
ファイルを/etc/yum.repos.d/
ディレクトリに配置します。例えば、EPELリポジトリを追加するには、以下のコマンドを実行します。
sudo yum install epel-release
YUMの廃止とその理由
[編集]YUMは長年にわたって広く使用されてきましたが、以下の理由から廃止(Obsolate)されました。
- パフォーマンスの問題:
- YUMはPython 2で書かれており、依存関係の解決やトランザクション処理が遅いという課題がありました。
- 特に大規模なシステムや多数のパッケージを扱う場合にパフォーマンスが低下していました。
- 依存関係解決の限界:
- YUMの依存関係解決アルゴリズムは、複雑な依存関係を扱う際に問題が発生することがありました。
- 依存関係の競合や循環依存が発生した場合に、解決が困難なケースがありました。
- メンテナンスの負担:
- YUMのコードベースが古く、メンテナンスが困難になっていました。
- 新しい機能の追加やバグ修正が難しくなり、開発が停滞していました。
これらの理由から、YUMはFedora 22以降でDNF(Dandified Yum)に置き換えられ、RHEL 8やCentOS 8でもDNFがデフォルトのパッケージマネージャーとなりました。
YUMの後継 - DNF
[編集]DNF(Dandified Yum)は、YUMの後継として開発されたパッケージ管理ツールです。DNFは、YUMの機能を引き継ぎつつ、以下のような改善が加えられています。
- 高速な依存関係解決:
- DNFは、
libsolv
という新しい依存関係解決ライブラリを使用しており、YUMよりも高速で正確な依存関係解決を実現しています。
- DNFは、
- Python 3での実装:
- DNFはPython 3で書き直されており、現代的なコードベースでメンテナンスが容易になっています。
- 拡張性の向上:
- DNFはプラグインアーキテクチャを採用しており、機能の拡張が容易です。
- トランザクションの信頼性向上:
- DNFは、トランザクションのロールバック機能を強化し、システムの安定性を高めています。
DNFへの移行
[編集]YUMからDNFへの移行は、ほとんどの場合シームレスに行えます。DNFはYUMと互換性のあるコマンドラインインターフェースを提供しており、YUMのコマンドをそのまま使用できます。例えば、以下のYUMコマンドはDNFでも同じように動作します。
sudo dnf install package_name sudo dnf update sudo dnf remove package_name
おわりに
[編集]YUMは、RPMベースのLinuxディストリビューションにおいて長年にわたって重要な役割を果たしてきましたが、時代の変化とともにその役目を終え、DNFに引き継がれました。DNFは、YUMの良さを引き継ぎつつ、パフォーマンスや機能性を大幅に向上させています。このハンドブックが、YUMの基本的な使い方とその歴史を理解する一助となれば幸いです。DNFを活用して、より効率的なパッケージ管理を行ってください。