1

I want to install this rpm (of course I can install it with -nodeps but I don't like this "solution").

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

Of course libclntsh.so.12.1 is on the system:

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

And its rpm is installed:

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

The library is 64bit

 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

Solution?

  • What happens if you run rpm -q --provides oracle-instantclient12.2-basic? – Will Crawford Jan 27 '18 at 4:40
2

The problem appears to be that the "instant client" package doesn't list the libraries as Provides: at all.

This has been depressingly common with proprietary packages but then, to be fair, it's not installing those libraries in the usual location, and it would in most cases be misleading to Provides: them anyway.

Your best solution is probably to disable automatic requires / provides processing in the .spec for your fdw package and manually add Requires: and BuildRequires: listing the "instant client" packages (>= whatever version you build against, I guess).

0

the library that is installed on your system is the 32-bit version. You are trying to install a 64bit rpm (which you can see in the name: oracle-fdw-27012018git-1.el7.centos.x86_64.rpm ), which requires the 64bit version of the same library. The dependency is not simply libclntsh.so.12.1 but libclntsh.so.12.1()(64bit) .

so either find a 32bit version of oracle-fdw; either you should install the 64bit version of oracle-instantclient12.2-basic.

EDIT : you should search a package that provides libclntsh.so.12.1()(64bit). Apparently your version of oracle-instantclient12.2-basic does not. To check on your system: rpm -q --whatprovides "libclntsh.so.12.1()(64bit)" which probably won't yield anything... so you have to search for an rpm that provides that. Best use a package manager such as yum or zypper who will manage those dependencies for you.

  • OP states in the question that oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64 is installed. – Will Crawford Jan 29 '18 at 10:19
  • @WillCrawford you are right, I appended more information in my answer on how to try to solve the problem. – Chris Maes Jan 29 '18 at 11:42
  • The library is 64bit,I edit my question – elbarna Jan 29 '18 at 16:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.