読者です 読者をやめる 読者になる 読者になる

rpmdev-vercmpコマンドでRPMパッケージのバージョン比較

CentOS

概要

rpmdev-vercmpコマンドを使うとRPMパッケージのバージョン比較が出来ます。


実行例

rpmdev-vercmp "パッケージ1" "パッケージ2"


表示結果例

パッケージ1 < パッケージ2

パッケージ2が新しいと確認出来ます。

インストール

rpmdev-vercmpコマンドはrpmdevtoolsというパッケージに含まれています。

yum install rpmdevtools.noarch


使い方

例として以下のパッケージを比較してみます。

パッケージ1 kernel-3.10.0-123.20.1.el7.x86_64
パッケージ2 kernel-3.10.0-229.1.2.el7.x86_64


パッケージ名全体で比較
rpmdev-vercmp "kernel-3.10.0-123.20.1.el7.x86_64" "kernel-3.10.0-229.1.2.el7.x86_64"


表示結果

kernel-3.10.0-123.20.1.el7.x86_64 < kernel-3.10.0-229.1.2.el7.x86_64


バージョン番号とリリース番号を分けて比較
rpmdev-vercmp "" "3.10.0" "123.20.1" "" "3.10.0" "229.1.2"


表示結果

3.10.0-123.20.1 < 3.10.0-229.1.2


引数解説

"" パッケージ1 Epoch番号
"3.10.0" パッケージ1 バージョン番号
"123.20.1" パッケージ1 リリース番号
"" パッケージ2 Epoch番号
"3.10.0" パッケージ2 バージョン番号
"229.1.2" パッケージ2 リリース番号

※パッケージ1,パッケージ2ともにEpoch番号は空です。

戻り値(終了コード)

戻り値でも判定が出来ます。

結果 戻り値
== 0
> 11
< 12


表示結果例

$ rpmdev-vercmp "kernel-3.10.0-123.20.1.el7.x86_64" "kernel-3.10.0-229.1.2.el7.x86_64"; echo $?
kernel-3.10.0-123.20.1.el7.x86_64 < kernel-3.10.0-229.1.2.el7.x86_64
12