yum / RPMは汎用パッケージに依存します(他のパッケージマネージャーの「提供」など)


2

私のパッケージを「java」を提供するものに依存させる方法を見つけようとしていますが、何を調べればよいのかわかりません。どうやら「yumが提供する」は、どのパッケージに特定のファイルが含まれているかを見つけるためのコマンドであり、「yum info」には必要な情報がないようです。

基本的に、私のOSには「java-1.6.0-openjdk」と呼ばれるパッケージがあり、パッケージにはJavaの実装が必要ですが、Oracle JavaまたはJava 7では完全に正常に動作します。それについて特定。Javaを提供するものだけに依存する方法はありますか?

回答:


2

スレッドは少し古いですが、回答されていません...

javaがrpmで提供するものを見つけることができます。

[mdavis@x1pt01 yumrepo]$ rpm -q --provides java-1.5.0-gcj-1.5.0.0-29.fc12.x86_64
jaas = 1.5.0.0-29.fc12
java = 1.5.0
java-1.4.2-gcj-compat > 1.4.2.0-40jpp.111
java-1.5.0 = 1.5.0.0-29.fc12
java-gcj = 1.5.0.0-29.fc12
java-gcj-compat = 1.0.79
java-sasl = 1.5.0.0-29.fc12
jaxp_parser_impl = 1.5.0.0-29.fc12
jce = 1.5.0.0-29.fc12
jdbc-stdext = 1.5.0.0-29.fc12
jdbc-stdext = 3.0
jndi = 1.5.0.0-29.fc12
jndi-cos = 1.5.0.0-29.fc12
jndi-dns = 1.5.0.0-29.fc12
jndi-ldap = 1.5.0.0-29.fc12
jndi-rmi = 1.5.0.0-29.fc12
jre = 1.5.0
jre-1.5.0 = 1.5.0.0-29.fc12
jre-1.5.0-gcj = 1.5.0.0-29.fc12
jre-gcj = 1.5.0.0-29.fc12
jsse = 1.5.0.0-29.fc12
java-1.5.0-gcj = 1.5.0.0-29.fc12
java-1.5.0-gcj(x86-64) = 1.5.0.0-29.fc12

次に、specファイルで必要な最小限のjavaを単に「必要」にすることができます。

必須:java> = 1.0


2

たとえば、jdkが必要な場合は、これらすべてのパッケージに適合する名前パターンを見つける必要があると思います。

yum list installed '*openjdk*'

パッケージ名を一意のパターンで要約できず、偽陽性を避ける場合は、aまたはbまたはcなどを見つける必要があるだけです。

そうですね、あなたはあなた自身のメタ(ダミー)パッケージを作ることができます。それぞれのパッケージは適切なパッケージの1つを必要とし、「java-installed」のようなものを提供します。

それから、あなたのrpmはjava-installedを必要とするだけです。


Javaのバージョンをインストールできますが、問題は、パッケージが特定のバージョンに依存したくないことです。基本的にRPM仕様ファイルには、現在の行がありますが、java-1.6.0-openjdkが「java」を提供することを自動的に決定するRequires: java-1.6.0-openjdkようなものにしたいのRequires: javaです。
ブレンダンロング

ああ、わかってるよ。必要なのは、RP依存関係のようにOR関係を直接指定することはできず、ANDのみをブリッジするメタ(ダミー)パッケージです。
johnshen64
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.