9

RPMにパッケージ化したWebアプリがあります。RPMのバージョンフィールドに問題があります。

rpmをインストールしたとしましょう:foo-2.1.0.007

007はビルド番号です。

新しいrpmfoo-2.1.0.010をインストールしようとすると、yumは「更新するものは何もありません」と言います。

RPMを作り直したが、先行ゼロを削除すると、問題は解決しました。

foo-2.1.0.7

foo-2.1.0.10

このリンクによると、バージョンの各セグメントは整数として比較されますが、実際にはそうではありません。

だから私の質問は:RPMのバージョン比較アルゴリズムとは何ですか?先行ゼロが干渉する理由は何ですか?

4

1 に答える 1

18

Yumはrpmにそれらを比較するように要求します。rpmdevtoolsをインストールして、次を使用できます。

% rpmdev-vercmp foo-2.1.0.010 foo-2.1.0.007
0:foo-2.1.0.010 is newer

...これはあなたが期待することです。007パッケージにエポックがない限り、なぜ別の答えが得られるのかわかりません。どのバージョンのrpmを使用していますか?vercmpはあなたに何と言いますか?

于 2010-06-23T20:43:13.147 に答える