これは簡単な質問のように思えますが、ドキュメントにはこの件について何も書いていないようです。のようなことをしたいのですが、それを行うと、実際には、 、およびRequires: vim or emacs
に依存します。2 つのパッケージのいずれかに依存するための構文は何ですか?vim
or
emacs
3 に答える
これを行うための標準的な方法は、仮想提供を介することです。提供RPMは、仮想パッケージを提供することを各状態で示し、依存RPMはその仮想パッケージを必要とします。したがって、あなたの例では、vim
とあなたのパッケージのemacs
両方が。Provides: text-editor
Requires: text-editor
依存しているパッケージが適切な仮想パッケージを提供していない場合は、独自のパッケージを作成することで、これを回避できる可能性があります。ダミーmy-package-vim-mode
とmy-package-emacs-mode
RPMを作成Requires: vim
しRequires: emacs
、それぞれ、、、およびProvides: my-package-text-editor
、パッケージを作成しますRequires: my-package-text-editor
。
パッケージに共通の Provide がなく、そのパッケージのフォークを再構築して維持したくないが、両方が同じファイルを提供する場合は、ファイルに依存できます。例えば:
Requires: /usr/bin/pear
そうすれば、pear バイナリが php-pear または php53-pear によって提供されているかどうかにかかわらず、パッケージは問題になりません。
rpmにはそのような機能はありません。パッケージに共通している場合は、仮想提供を要求します。