RPM データベースは、RPM の一部としてインストールされたファイルを表示できません。

RPM データベースは、RPM の一部としてインストールされたファイルを表示できません。

紹介する:

RHEL 6.9 32bitオペレーティングシステムでは、次の作業が行われます。

次のコマンドを使用して、oracle(openjdkではない)バージョンのJRErpmをインストールしました。

rpm -Uvh

注文する。

rpmbuildその後、oracle JREが提供する要件を使用してパッケージを構築し、libjvm.soコマンドを使用してこれを確認しました。

rpm -ql jre1.8.0_111-1.8.0_111-fcs.i586

質問:

rpmしかし、私が作成したものをインストールしたり、コマンドを使用しようとすると、まだインストールされていないというメッセージがrpm -q libjvm.so表示されます。libjvm.so

spec私は私のrpmファイルを置くことができることを知っています。

AutoReqProv: no

しかし、良い方法ではないような依存関係の問題を解決するために、rpmデータベースも再構築しましたが、役に立ちませんでした。

質問:

だから私はjre rpmがそれがどのように提供されたかを考えて理解しようとしましたが、libjvm.soRPMデータベースは依存関係がlibjvm.soまだインストールされていないと言い続けます。どんなアイデアがありますか?

編集する

JRE rpmは以下も提供します。

jaxp_parser_impl  
xml-commons-apis  
java  
java-1.8.0  
java-fonts  
jre  
jre-1.8.0  
jre1.8.0_111 = 1.8.0_111-fcs

ベストアンサー1

OpenJDK パッケージの要件は、libjvm.so以下に由来します。

$ rpm -qp --provides java-1.8.0-openjdk-headless-1.8.0.121-1.b13.el6.x86_64.rpm \
  2>/dev/null | grep libjvm
libjvm.so()(64bit)
libjvm.so(SUNWprivate_1.1)(64bit)

一方、Oracle RPMはこれらの機能を提供しません。構築中のパッケージから要件を削除する代わりに(ハンマーAutoReqProvまたはより複雑なオプションを使用)依存性スクリプト)もう1つのオプションは、必要な要件(ConflictOpenJDKを含む)のみを提供するshimパッケージを作成することです。

Name:           shim-libjvm
Version:        1
Release:        1%{?dist}
Summary:        Shim for libjvm

Group:          Development/Languages
License:        CC BY-SA 3.0
URL:            http://example.org

Provides:       libjvm.so

BuildArchitectures: noarch

%description
Shim for libjvm

%install
mkdir -p %{buildroot}/usr/share/doc/shim-libjvm
echo "shim-libjvm is merely a provider for libjvm.so" > %{buildroot}/usr/share/doc/shim-libjvm/README


%files
%doc
/usr/share/doc/shim-libjvm/README

%changelog
* Thu Jun  8 2017 John Doe <[email protected]>
- Release on a mostly unsuspecting world.

おすすめ記事