1

同じ機能を提供する異なる rpm が存在する状況を考えてみましょう。架空の例として、Oracle JDK rpm、Oracle JRE rpm、および OpenJDK rpm のすべてで、SPEC ファイルの「Provides」フィールドに「java-env」がリストされているとします。現在、ant、groovy、maven などの rpm はすべて、SPEC ファイルで「Requires」フィールドが「java-env」に設定されています。groovy または maven をインストールしようとすると、何がインストールされますか? インストールされる依存関係をどのように制御できますか? 1 つの方法は、Oracle JDK rpm、Oracle JRE rpm、および OpenJDK をすべて別のリポジトリに配置し、リポジトリに優先順位を設定することだと思いますが、この方法では、この種の競合がいくつかあるため、リポジトリの数が増え続ける可能性があります。 .

4

1 に答える 1

1

複数のパッケージが同じ機能を提供する場合は、それぞれをインストールできます。これは主にユーザーの選択です。パッケージが適切に作成されたら、それぞれを (一度に 1 つだけ) インストールできるはずです。

環境を必要とするパッケージは、どれがインストールまたは使用されているかさえ認識しません。

ユーザーの操作なしでインストールされるパッケージは、パッケージ マネージャーによって異なります。ユーザーに尋ねる人もいれば、好みのものを選ぶ人もいます...

特別な Java バージョンが必要な場合は、汎用パッケージを要求する代わりに、その特定のパッケージを要求する必要があります。ここでの問題は、別のパッケージが別のパッケージを必要とする可能性があり、解決できない競合が発生することです。したがって、常にジェネリックを使用するのが最善ですRequires

ほとんどのシステムでは、複数の Java パッケージをインストールすることもできます。次に、インストール プロセスは、(/etc/alternativesメカニズムを介して) 最適なものをデフォルトとして選択します。

于 2013-04-24T08:08:17.893 に答える