rpm と yum の違い

yum はオンラインでソフト名を指定するとリポジトリから最新のパッケージかつ依存関係のあるパッケージも一緒にインストールしてくれます。

 

 (オフラインのときはリポジトリの設定時にメディアを指定すればできます。この場合は同梱版のパッケージがインストール出来ます。)

実際にやってみました。以下に表示されるパッケージが全てインストール/アップデートされます。

検証環境は CentOS6.5 です。

 

# yum install bind

Dependencies Resolved

=================================================================================
Package Arch Version Repository Size
=================================================================================
Installing:
bind x86_64 32:9.8.2-0.30.rc1.el6_6.1 updates 4.1 M
Installing for dependencies:
portreserve x86_64 0.0.4-9.el6 base 23 k
Updating for dependencies:
bind-libs x86_64 32:9.8.2-0.30.rc1.el6_6.1 updates 884 k
bind-utils x86_64 32:9.8.2-0.30.rc1.el6_6.1 updates 185 k

Transaction Summary
=================================================================================
Install 2 Package(s)
Upgrade 2 Package(s)

 

Total download size: 5.2 M
Is this ok [y/N]:

 

一方 rpm はパッケージ名を指定します。オフラインでも rpm パッケージをダウンロードして rpm コマンドを実行すればOK.

下記の例では、カレントディレクトリに bind-9.8.2-0.30.rc1.el6_6.1.x86_64.rpm をダウンロードしてから rpm コマンドを実行しています。

依存関係のあるパッケージはインストールされないので、エラーが出ます。

 

# rpm -ivh bind-9.8.2-0.30.rc1.el6_6.1.x86_64.rpm
警告: bind-9.8.2-0.30.rc1.el6_6.1.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
エラー: 依存性の欠如:
bind-libs = 32:9.8.2-0.30.rc1.el6_6.1 は bind-32:9.8.2-0.30.rc1.el6_6.1.x86_64 に必要とされています
portreserve は bind-32:9.8.2-0.30.rc1.el6_6.1.x86_64 に必要とされています

 これは bind-9.8.2-0.30.rc1.el6_6.1.x86_64 は bind-libs = 32:9.8.2-0.30.rc1.el6_6.1 と portreserve と依存関係があるので、一緒にパッケージを指定して rpm を実行しないといけませんという意味です。

 

エラーメッセージに従ってパッケージを追加します。

 # rpm -ivh bind-9.8.2-0.30.rc1.el6_6.1.x86_64.rpm bind-libs-9.8.2-0.30.rc1.el6_6.1.x86_64.rpm portreserve-0.0.4-9.el6.x86_64.rpm
警告: bind-9.8.2-0.30.rc1.el6_6.1.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
警告: portreserve-0.0.4-9.el6.x86_64.rpm: ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
準備中... ########################################### [100%]
1:portreserve ########################################### [ 33%]
2:bind-libs ########################################### [ 67%]
3:bind ########################################### [100%]

依存関係のエラーが出ずに無事にインストール出来ました。

 参考 URL


Difference Between YUM and RPM | Difference Between | YUM vs RPM