私は通常次のように始めます。最小セントース7そして走る
yum install java-1.8.0-openjdk
Java ランタイム環境をインストールするには。 JARファイルを実行できるので、これはうまく機能します。
今は回転速度 仕様書使用」必要句をパッケージの依存関係として指定します。たとえば、次のようになります。
Requires: jre-headless = 1.8
しかし、私がするとき
yum install my-rpm-1.0.0.el7.x86_64.rpm
次のエラーメッセージが表示されます。
Available: 1:java-1.8.0-openjdk-headless-1.8.0.272.b10-1.el7_9.i686
Available: 1:java-11-openjdk-headless-11.04.11-0.el7_6.i686
Not found
You could try using --skip-broken to work around this problem
You could try running: rpm -Va --nofiles --nodigest
私の仕様ファイルの「Requires:」セクションにどのような問題があるかを知っている人はいますか?私は仕様ファイルが「Requires」句を介して「yum install java-1.8.0-openjdk」を自動的に実行したいと思います。
答え1
何も提供されていないと思いますjre-headless = 1.8
。利用可能な仮想パッケージを見てみましょう。
$ repoquery --provides $(repoquery --whatprovides jre-headless) | sort -u | grep jre-headless
jre-headless = 1:1.7.0
jre-headless = 1:1.8.0
したがって、次のように書くことができます。
Requires: jre-headless = 1:1.8.0
答え2
1.8
1:
パッケージのバージョン名にはエポック番号(興味深い接頭辞)が含まれているため、これだけでは不十分です。
# rpm -qa | grep head
java-1.8.0-openjdk-headless-1.8.0.332.b09-1.el7_9.x86_64
# rpm -q --provides java-1.8.0-openjdk-headless | grep jre
jre-1.8.0-headless = 1:1.8.0.332.b09-1.el7_9
jre-1.8.0-openjdk-headless = 1:1.8.0.332.b09-1.el7_9
jre-headless = 1:1.8.0
jre-openjdk-headless = 1:1.8.0.332.b09-1.el7_9
代わりに使用する場合は、依存関係の解決を1:1.8.0
満たす必要があります。
# grep Requ somedirectory.spec
Requires: jre-headless = 1:1.8.0
# rpmbuild -ba somedirectory.spec
...
# rpm -qp --requires rpmbuild/RPMS/x86_64/somedirectory*
jre-headless = 1:1.8.0
# yum -y install /root/rpmbuild/RPMS/x86_64/somedirectory*
...