概要
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