rpm relata falta de dependência, mas está presente?

1

Eu quero instalar este rpm (é claro que posso instalá-lo com -nodeps , mas não gosto dessa "solução").

LANG=C rpm -Uvh /home/pippiripi/rpmbuild/RPMS/x86_64/oracle-fdw-27012018git-1.el7.centos.x86_64.rpm 
error: Failed dependencies:
    libclntsh.so.12.1()(64bit) is needed by oracle-fdw-27012018git-1.el7.centos.x86_64

É claro que libclntsh.so.12.1 está no sistema:

ldconfig -p|grep libclntsh.so.12.1
    libclntsh.so.12.1 (libc6,x86-64) => /usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1

E o seu rpm está instalado:

rpm -qf /usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1
oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64

A biblioteca é de 64 bits

 file /usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1
/usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=068dc0a57c8b0310180f2a659b71de4115ba9020, not stripped

Solução?

    
por elbarna 26.01.2018 / 23:31

2 respostas

2

O problema aparece é que o pacote "instant client" não lista as bibliotecas como Provides: .

Isso tem sido depreciativamente comum com pacotes proprietários, mas, para ser justo, não é instalar essas bibliotecas no local habitual e, na maioria dos casos, seria enganoso para Provides: de qualquer maneira.

Sua melhor solução é provavelmente desabilitar o processamento de solicitações / ofertas automáticas no pacote% fdw para .spec e adicionar manualmente Requires: e BuildRequires: listando os pacotes "cliente instantâneo" (> = qualquer versão que você construa , Eu acho).

    
por 30.01.2018 / 00:23
0

a biblioteca instalada em seu sistema é a versão de 32 bits. Você está tentando instalar um rpm de 64 bits (que você pode ver no nome: oracle-fdw-27012018git-1.el7.centos. x86_64 .rpm), que requer a versão de 64 bits da mesma biblioteca . A dependência não é simplesmente libclntsh.so.12.1 mas libclntsh.so.12.1 () (64bit) .

então encontre uma versão de 32bit do oracle-fdw; ou você deve instalar a versão de 64 bits do oracle-instantclient12.2-basic.

EDIT : você deve pesquisar um pacote que forneça libclntsh.so.12.1 () (64bit) . Aparentemente, sua versão do oracle-instantclient12.2-basic não. Para verificar o seu sistema: rpm -q --whatprovides "libclntsh.so.12.1()(64bit)" , que provavelmente não renderá nada ... então você precisa procurar por um rpm que forneça isso. É melhor usar um gerenciador de pacotes, como yum ou zypper , que gerenciará essas dependências para você.

    
por 29.01.2018 / 08:01