Centos

rpm 報告依賴項失去,但它存在嗎?

  • January 29, 2018

我想安裝這個 rpm(當然我可以安裝它,-nodeps但我不喜歡這個“解決方案”)。

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

當然libclntsh.so.12.1是在系統上:

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

並安裝了它的rpm:

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

該庫是 64 位的

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

解決方案?

問題似乎是“即時客戶端”包根本沒有列出庫Provides:

這在專有軟體包中非常普遍,但公平地說,它並沒有將這些庫安裝在通常的位置,而且在大多數情況下Provides:無論如何都會誤導他們。

.spec您最好的解決方案可能是在您的 fdw 包中禁用自動需要/提供處理,並手動添加Requires:BuildRequires:列出“即時客戶端”包(> = 您建構的任何版本,我猜)。

引用自:https://unix.stackexchange.com/questions/419939