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또는 더 복잡한 옵션 사용)종속성 스크립트) 또 다른 옵션은 필요한 요구 사항( 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.

관련 정보