RPMがパッケージの最新バージョンをどのように認識するかを理解しようとしています。私が持っているとしましょう:
package-0.1-SNAPSHOT201212031
package-0.2-SNAPSHOT201212030
rpm マネージャーはそれを文字列として比較しますか、それとも背後にさらにロジックがありますか? または別の例: 0.10.1 が 0.1.1 よりも新しいことを認識しますか? (文字列比較はここでは役に立ちません)。
唯一の厳格な規則は、RELEASE フィールドにダッシュを入れてはならないということです。
検討:
rpm -qi hwdata
に続く
$ rpm -q hwdata --queryformat '%10{NAME} %20{VERSION} %20{RELEASE} %20{ARCH}\n'
hwdata 0.213.22 1.el5 noarch
リリース タグのルールについては、このドキュメントのリリース タグのセクションを参照してください。
注: 参考までに、specfile にrpm タグがない場合、プログラムで rpm の説明に何かを詰め込むことがあります。あなたのマイレージは異なるかもしれません.パッケージがコミュニティに戻ってくるのは厄介なので、これはお勧めしません. rpmで動作するさまざまなツールにブレーキをかけないようにするための回避策として、それを指摘するだけです。
注 2: RELEASE フィールドでリビジョン管理番号を使用するのが一般的です。これはrpmの慣習から少し外れていますが。(そのフィールドを変更すると、コンテンツではなくスペックファイルが変更されたことを意味します) これは、rpm ツールを壊さず、コンテンツのバージョンを直接参照できるため、使用するのに便利なフィールドです。また... rpm の内容をリビジョン管理システムにチェックインしている場合、これはすでに rpm モデルから少し外れています。IE ソースの rpm が不要になります。