本記事では、yumとrpmの違いについて解説していく。
その際、肝となるパッケージ管理とはと言う点についても詳しく解説していく。
yumとrpmの違い
まずは結論から述べてしまうと、yumとrpmの違いは、
パッケージ管理システムとして、依存管理機能を持つかどうかの違いとなる。
※yum、rpm共にパッケージ管理システムであることに違いはない。
ではyumとrpmの違いについて、より詳しく説明していく。
① yumとは
yumとは、
LinuxのRedHat系ディストリビューション(CentOSやFedoraなど)で利用される、パッケージ管理システムのことだ。
パッケージ管理システムとは、
OSへのパッケージの導入や削除を行ってくれる機能のことだ。
パッケージとは、ソフトウェアを構成するファイルらをまとめたもので、要は一つのソフトウェアと思ってもらえれば良い。※後述で詳しく説明する

- yumとは、LinuxのRedHat系ディストリビューション(CentOSやFedoraなど)で利用される、パッケージ管理システムのこと。
- パッケージ管理システムを備えている。
パッケージの依存関係はyumが解決!
パッケージには通常、パッケージ内やパッケージ同士で「依存関係」と言うものが存在する。
この依存関係が正しい状態でないと、システムが動かなかったり、不具合の原因になったりする。
yumではこの依存関係を自動的に解決する「依存管理機能」が備わっている。
※パッケージ管理については記事の後半で詳しく解説する

yumでは、パッケージ内やパッケージ同士に存在する「依存関係」を解決する依存管理機能が備わっている。
yumを使えば、パッケージどうしの依存関係を意識することなく、簡単かつ安全にパッケージ(ソフトウェア)を管理することができる。
#php(パッケージ)をインストール yum install php #mysql(パッケージ)を更新
yum update mysql
コマンド自体はシンプルだが、裏では、上記イメージが示したように、パッケージの依存関係をyumが自動で見定めて、問題のないようにライブラリの組み合わせなどを選定してくれる。
② rpmとは
rpmとは、yumと同様に、
パッケージ管理ツールの一つだ。
ただ、yumで持ち合わせている「依存関係」の解決機能(後述で解説)を持ち合わせていないなど、同じパッケージ管理ツールでありながら機能的にyumに劣ることから、rpmはyumの劣化、yumはrpmの高機能版なんて言われたりする。
なので、困ったらとりあえずyumを選択するのがベター。
しかしながら、rpmはyumに比べて使用頻度は少ないものの、覚えておいて損は無いので、下記にて使い方を紹介しておいた。参考までにぜひ読んでみてほしい。
パッケージ管理とは
パッケージ管理について触れたが、パッケージ管理について詳しく解説していく。
(ITにおける) パッケージとは
IT用語が指すパッケージとは、
ソフトウェアを構成するファイルらをまとめたもののことを言う。
ソフトウェアは通常、複数のファイルがお互いに動作し合い、一つのソフトウェアとして動くようにできている
この複数のファイルというのが、例えば、設定ファイルやドキュメント、プログラム本体、ライブラリなどだ。これらはソフトウェアの構成に不可欠なものだ。
このように、ソフトウェアを構成するファイルをまとめたものをITにおいて、パッケージと呼ぶ。

ソフトウェアの構成に必要なファイル群をまとめたもの
パッケージ管理とは
パッケージが理解できたところで、パッケージ管理とはと言う疑問にお答えする。
パッケージ管理とは、
パッケージの依存関係の管理を自動的に行なってくれるものだ。
上述では、yumにはこのパッケージ管理機能が備わっていると説明した。
依存関係とは
依存関係とは、すでに少し触れたが、
パッケージ、またはパッケージ同士がうまく動作し合うための条件だと思って貰えば良い。

「うまく動作し合う」と言うのは、ソフトウェアとして正しく動作すると言うことだ。
パッケージのファイルたちはお互いに関連して動いている。
そのため、古いパッケージのバージョンで使用していたとあるファイルが、最新のパッケージになると、今までの古いバージョンではうまく言っていた関連が崩れてしまい、ソフトウェアが正しく動かないということが起きてくる。
また、パッケージの依存関係は、パッケージ同士にも存在する。
パッケージAが動作するためには、パッケージBも必要と言った感じだ。

つまり、まとめると「依存関係」には大きく二種類ある。
- パッケージ内の依存関係
- パッケージ同士の依存関係
①パッケージ内の依存関係
一つのパッケージを構成するファイル群同士の依存関係のことを言う。
②パッケージ同士の依存関係
あるパッケージAが動くためには、あるパッケージBも必要だよねって言う考え方。
上記を踏まえて、yumとrpmの使いわけのポイント
上記を踏まえて、yumとrpmの使いわけのポイントを最後に具体的に説明しようと思う。
基本的にyumを使用する事が多い
まずは大前提として、基本的にyumとrpm、どちらの使用頻度が高いかと言われたら、
圧倒的にyumの方が使用頻度が高いということを覚えておこう。
基本的にユーザはyumごしにrpmを半自動でインストールすることがほとんどだろう。
リポジトリレベルでrpmパッケージを管理するので、インストールしていないパッケージに関しても情報が参照できる。内包している情報量も多い。
以下にyumとrpmの使い分けについて、ポイントをまとめておく。
- 基本的に、日常ではyumでリポジトリから依存関係を管理インストールする
- パッケージ個々をカスタマイズしたり単発なパッケージをインストールする場合、個々のファイル一覧を取得したいなどのときは、rpm コマンドを使用する
yumとrpm、それぞれの特徴
yumはリポジトリ内の情報などを統合管理してrpmだけでは難しい依存関係の自動解決なども行ってくれる。
一方rpmはパッケージ個々の情報を細かく管理できる。
- 基本的にリポジトリの中のrpmを統合管理しており依存関係を自動解決してくれる。
- インストール時は基本的に「yum search」でヒットする名前を指定すればよい。
- リポジトリ上に存在しているインストールしていないパッケージの検索や情報閲覧が可能となっている。
- ディストリビューション内のパッケージのアップデートもyumを使用する。
- 管理はパッケージ個々単位であり依存関係は自動解決されない
- パッケージ単位での管理となるので「rpm」など「.rpm」ファイルを指定する。
- 個々の細かいファイル情報も参照できる。
- リポジトリに依存しない。
- 個々で管理するときはrpmコマンドを使用する。
- 依存関係を自動解決させたいのなら、yumリポジトリに投入する必要がある。
yumとrpmの違い 〜パッケージ管理とは〜 まとめ
rpmもyumも平たく言えば「パッケージを管理するシステム」だ。
しかし、yumとrpmの違いとして、以下のような違いがある。
パッケージ管理システムとして、依存管理機能を持つかどうか
- yum : 依存管理機能あり
- rpm : 依存管理機能なし
依存関係とは、
パッケージ、またはパッケージ同士がうまく動作し合うための条件のことで、
依存関係には大きく以下の二種類がある。
- パッケージ内の依存関係
- パッケージ同士の依存関係
関連記事
https://eng-entrance.com/linux-package-rpm-yum-def
パッケージ管理システムとして、依存管理機能を持つかどうか
※yum、rpm共にパッケージ管理システムであることに違いはない。