O banco de dados RPM não vê o arquivo instalado como parte do RPM

0

Introdução:

O seguinte foi feito em um RHEL 6.9 32bit OS.

Eu instalei a versão do oracle (não openjdk) de JRE rpm usando o

rpm -Uvh

comando

.

Eu então construí um pacote usando rpmbuild que requer libjvm.so que é fornecido pelo oracle JRE e verifiquei isso usando o comando.

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

Problema:

No entanto, quando vou instalar o rpm que criei ou uso o comando rpm -q libjvm.so , estou sendo informado de que libjvm.so não está instalado.

Eu sei que posso colocar o arquivo spec para minhas rpm

AutoReqProv: no

para contornar a questão da dependência, no entanto, isso não parece ser uma boa prática e eu também reconstruí o banco de dados rpm sem sucesso.

Pergunta:

Assim, fico pensando e tentando resolver, como o jre rpm diz que fornece libjvm.so , mas o banco de dados RPM continua dizendo que a dependência libjvm.so não está instalada. Alguma idéia?

EDITAR

O rpm do JRE também fornece o seguinte

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
    
por jgr208 08.06.2017 / 16:27

1 resposta

1

A exigência de libjvm.so nos pacotes do OpenJDK vem de

$ 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)

que o Oracle RPM, por contraste, não fornece. Além de remover esse requisito do pacote que você está criando (ou com o martelo que é AutoReqProv ou opções mais complicadas envolvendo o scripts de dependência ) outra opção é criar um pacote de shim que não faz nada mais do que fornecer o necessário requisito (e possivelmente para Conflict com 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 <[email protected]>
- Release on a mostly unsuspecting world.
    
por 09.06.2017 / 00:02