Rhel
RPM 數據庫沒有看到作為 RPM 的一部分安裝的文件
介紹:
以下是在
RHEL 6.9 32bit
作業系統上完成的。
JRE
我使用 rpm安裝了 oracle(不是 openjdk)版本
rpm -Uvh
命令。
然後,我使用oracle JRE 提供的
rpmbuild
要求建構了一個包,並使用命令驗證了這一點。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.so
但 RPM 數據庫一直說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
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
或更複雜的涉及依賴腳本的選項)之外,另一種選擇是創建一個 shim 包,它只提供必要的要求(並且可能Conflict
使用 OpenJDK )。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 <jdoe@example.org> - Release on a mostly unsuspecting world.