Quero instalar este rpm (claro que posso instalar -nodeps
mas não gosto desta "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 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 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?
O problema parece ser que o pacote "cliente instantâneo" não lista as bibliotecas
Provides:
.Isso tem sido deprimente comum com pacotes proprietários, mas, para ser justo, não é instalar essas bibliotecas no local usual e, na maioria dos casos, seria enganoso para
Provides:
eles de qualquer maneira.Sua melhor solução é provavelmente desabilitar o processamento automático de requisitos/fornece no
.spec
seu pacote fdw e adicionar manualmenteRequires:
eBuildRequires:
listar os pacotes "cliente instantâneo" (>= qualquer versão que você construir, eu acho).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 32 bits do oracle-fdw; ou você deve instalar a versão de 64 bits do oracle-instantclient12.2-basic.
EDIT : você deve procurar um pacote que forneça libclntsh.so.12.1()(64bit) . Aparentemente, sua versão do oracle-instantclient12.2-basic não. Para verificar no seu sistema: o
rpm -q --whatprovides "libclntsh.so.12.1()(64bit)"
que provavelmente não vai render nada... então você tem que procurar um rpm que forneça isso. É melhor usar um gerenciador de pacotes comoyum
ouzypper
que gerenciará essas dependências para você.