これは簡単な質問のように思えますが、ドキュメントにはこの件について何も書いていないようです。のようなことをしたいのですが、それを行うと、実際には、 、およびRequires: vim or emacsに依存します。2 つのパッケージのいずれかに依存するための構文は何ですか?vimoremacs
3 に答える
これを行うための標準的な方法は、仮想提供を介することです。提供RPMは、仮想パッケージを提供することを各状態で示し、依存RPMはその仮想パッケージを必要とします。したがって、あなたの例では、vimとあなたのパッケージのemacs両方が。Provides: text-editorRequires: text-editor
依存しているパッケージが適切な仮想パッケージを提供していない場合は、独自のパッケージを作成することで、これを回避できる可能性があります。ダミーmy-package-vim-modeとmy-package-emacs-modeRPMを作成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にはそのような機能はありません。パッケージに共通している場合は、仮想提供を要求します。