回答:
はい、とても簡単です。
書くだけ:
Requires: somepackage >= 0.5.0, somepackage < 0.6.0
あなたの.spec
ファイルに。
バージョン要件の追加
パッケージのニーズがもう少し厳しい場合、パッケージの特定のバージョンを要求することができます。必要なのは、次の比較演算子のいずれかを前に付けて、目的のバージョン番号を追加することです。
指定されたバージョンより前のバージョンのパッケージが必要です。
指定されたバージョン以下のバージョンのパッケージが必要です。
指定されたバージョンと同じバージョンのパッケージが必要です。
指定されたバージョン以上のバージョンのパッケージが必要です。
指定されたバージョンより大きいバージョンのパッケージが必要です。
この例を続けて、必要なパッケージバーのバージョンは実際には少なくとも2.7である必要があり、bazパッケージはバージョン2.1である必要があると仮定します。他のバージョンではできません。requireタグ行は次のようになります。require:bar> = 2.7、baz = 2.1
ソース:http : //rpm.org/user_doc/more_dependencies.html
上記のシステムは、ほとんどのパッケージで機能します。ただし、必要なパッケージが[仮想機能] [1]として提供されている場合、または別の名前のパッケージ(つまり、互いに競合しない)によって提供されている場合(つまり、 "Provides:"キーワード)最終的に2つの異なるパッケージがインストールされ、それぞれが要件の1つを満たします。たとえば、specファイルに次が含まれている場合:
Requires: postgresql-server >= 8.4, postgresql-server < 9.0
(これらのパッケージをyumで使用できる場合)インストールが行われる可能性があります。
ただし、おそらくpostgresql84-server はインストールしません。これは、おそらくインストールするはずだったパッケージです。
(この場合、解決策は単にpostgresql84-serverを要求することですが、他の例では簡単な解決策がない可能性があります。)
パッケージをビルドしようとしているのか、パッケージをインストールしてその依存関係を「制限」しようとしているのかは明確ではありません。
パッケージをリビルドせずに2番目のケースを作成する方法がわかりません。
SRPMを取得して仕様ファイルを編集し、次のようなエントリに必要なエントリ(somepackage0.5.xが必要ですか?)を追加/変更します。
Requires: somepackage = 0.5.0
そして、再構築
rpmbuild -bb -v yourpackage.spec
あなたがそれをやったことがなければ、それは恐ろしいように見えますが、それはあなたの問題を解決します。ディストリビューションのパブリックパッケージを作成する場合は、この方法で依存関係を設定することは一般的に推奨されないため、そのガイドラインを読むことをお勧めします。