yumとrpmの違い 〜パッケージ管理とは〜

yumとrpmの違い 〜パッケージ管理とは〜

 

本記事では、yumとrpmの違いについて解説していく。
その際、肝となるパッケージ管理とはと言う点についても詳しく解説していく。

 

yumとrpmの違い




まずは結論から述べてしまうと、yumとrpmの違いは、
パッケージ管理システムとして、依存管理機能を持つかどうかの違いとなる。

※yum、rpm共にパッケージ管理システムであることに違いはない。

 

yumとrpmの違い

パッケージ管理システムとして、依存管理機能を持つかどうか

  • yum : 依存管理機能あり
  • rpm : 依存管理機能なし

 

※yum、rpm共にパッケージ管理システムであることに違いはない。

 

 

ではyumとrpmの違いについて、より詳しく説明していく。

 

① yumとは

yumとは、
LinuxのRedHat系ディストリビューション(CentOSやFedoraなど)で利用される、パッケージ管理システムのことだ。

パッケージ管理システムとは、
OSへのパッケージの導入や削除を行ってくれる機能のことだ。

パッケージとは、ソフトウェアを構成するファイルらをまとめたもので、要は一つのソフトウェアと思ってもらえれば良い。※後述で詳しく説明する

yumでパッケージ管理を行う画像

 

yumとは
  • yumとは、LinuxのRedHat系ディストリビューション(CentOSやFedoraなど)で利用される、パッケージ管理システムのこと。
  • パッケージ管理システムを備えている。

 

パッケージの依存関係はyumが解決!

パッケージには通常、パッケージ内やパッケージ同士で依存関係と言うものが存在する。
この依存関係が正しい状態でないと、システムが動かなかったり、不具合の原因になったりする

yumではこの依存関係を自動的に解決する「依存管理機能」が備わっている
※パッケージ管理については記事の後半で詳しく解説する

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において、パッケージと呼ぶ。

 

(ITにおける) パッケージとは

ソフトウェアの構成に必要なファイル群をまとめたもの

 

パッケージ管理とは

パッケージが理解できたところで、パッケージ管理とはと言う疑問にお答えする。

パッケージ管理とは、
パッケージの依存関係の管理を自動的に行なってくれるものだ。

上述では、yumにはこのパッケージ管理機能が備わっていると説明した。

 

依存関係とは

依存関係とは、すでに少し触れたが、
パッケージ、またはパッケージ同士がうまく動作し合うための条件だと思って貰えば良い。

「うまく動作し合う」と言うのは、ソフトウェアとして正しく動作すると言うことだ。

パッケージのファイルたちはお互いに関連して動いている。
そのため、古いパッケージのバージョンで使用していたとあるファイルが、最新のパッケージになると、今までの古いバージョンではうまく言っていた関連が崩れてしまい、ソフトウェアが正しく動かないということが起きてくる。

また、パッケージの依存関係は、パッケージ同士にも存在する。
パッケージAが動作するためには、パッケージBも必要と言った感じだ。

パッケージ内の依存関係とパッケージ同士の依存関係を表した画像

 

つまり、まとめると「依存関係」には大きく二種類ある。

依存関係の種類
  1. パッケージ内の依存関係
  2. パッケージ同士の依存関係

 

①パッケージ内の依存関係
一つのパッケージを構成するファイル群同士の依存関係のことを言う。

②パッケージ同士の依存関係
あるパッケージAが動くためには、あるパッケージBも必要だよねって言う考え方。

 

 

上記を踏まえて、yumとrpmの使いわけのポイント

上記を踏まえて、yumとrpmの使いわけのポイントを最後に具体的に説明しようと思う。

 

基本的にyumを使用する事が多い

まずは大前提として、基本的にyumとrpm、どちらの使用頻度が高いかと言われたら、
圧倒的にyumの方が使用頻度が高いということを覚えておこう。

基本的にユーザはyumごしにrpmを半自動でインストールすることがほとんどだろう。

リポジトリレベルでrpmパッケージを管理するので、インストールしていないパッケージに関しても情報が参照できる。内包している情報量も多い。

以下にyumとrpmの使い分けについて、ポイントをまとめておく。

 

yumとrpmの使い分け
  • 基本的に、日常ではyumでリポジトリから依存関係を管理インストールする
  • パッケージ個々をカスタマイズしたり単発なパッケージをインストールする場合、個々のファイル一覧を取得したいなどのときは、rpm コマンドを使用する

 

 

yumとrpm、それぞれの特徴

yumはリポジトリ内の情報などを統合管理してrpmだけでは難しい依存関係の自動解決なども行ってくれる。

一方rpmはパッケージ個々の情報を細かく管理できる。

yum(リポジトリから依存関係を含めて管理する)
  • 基本的にリポジトリの中のrpmを統合管理しており依存関係を自動解決してくれる。
  • インストール時は基本的に「yum search」でヒットする名前を指定すればよい。
  • リポジトリ上に存在しているインストールしていないパッケージの検索や情報閲覧が可能となっている。
  • ディストリビューション内のパッケージのアップデートもyumを使用する。
rpm(個々のパッケージを扱う)
  • 管理はパッケージ個々単位であり依存関係は自動解決されない
  • パッケージ単位での管理となるので「rpm」など「.rpm」ファイルを指定する。
  • 個々の細かいファイル情報も参照できる。
  • リポジトリに依存しない。
  • 個々で管理するときはrpmコマンドを使用する。
  • 依存関係を自動解決させたいのなら、yumリポジトリに投入する必要がある。

 

yumとrpmの違い 〜パッケージ管理とは〜 まとめ

rpmもyumも平たく言えば「パッケージを管理するシステム」だ。
しかし、yumとrpmの違いとして、以下のような違いがある。

yumとrpmの違い

パッケージ管理システムとして、依存管理機能を持つかどうか

  • yum : 依存管理機能あり
  • rpm : 依存管理機能なし

 

依存関係とは、
パッケージ、またはパッケージ同士がうまく動作し合うための条件のことで、
依存関係には大きく以下の二種類がある。

依存関係の種類
  1. パッケージ内の依存関係
  2. パッケージ同士の依存関係

 

関連記事

 

(Linux) rpmコマンドの使い方まとめ【オプション解説あり】

 

 

https://eng-entrance.com/linux-package-rpm-yum-def

【yum入門】yumとは何か?Linuxにおけるyumとrpmの違い

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。