LINUX.ORG.RU
ФорумAdmin

[RPM-spec][deps][AutoReq] Поясните как можно заоверрайдить автоматом определенную зависимость при сборке RPM в спеке?


0

1

Собственно, собираю пакет, сама сборка проходит отлично, пакет собирается, но с зависимостями не очень хорошо.

Сама софтина в той конфигурации, в которой я её собираю требует наличия либ из пакета. Пакет явно указан в Requires:, однако после сборки вот что получается:

rpm -qpR kannel-1.5.0.svn4946-1.el6.x86_64.rpm
/bin/sh
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libclntsh.so.11.1()(64bit)
libcrypto.so.10()(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libnsl.so.1()(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libresolv.so.2()(64bit)
librt.so.1()(64bit)
libssl.so.10()(64bit)
libxml2.so.2()(64bit)
libxml2.so.2(LIBXML2_2.4.30)(64bit)
libxml2.so.2(LIBXML2_2.6.0)(64bit)
libz.so.1()(64bit)
oracle-instantclient11.2-basic
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

И при установке ругается на нехватку libclntsh.so.11.1()(64bit), которая содержится в пакете oracle-instantclient11.2-basic. Пока условно победил включением Autoreq: 0, что есть не совсем правильно. После чего зависимости пакеты выглядят так:

rpm -qpR kannel-1.5.0.svn4946-1.el6.x86_64.rpm
oracle-instantclient11.2-basic
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadIsXz) <= 5.2-1

И всё же остается непонятным, как в спеке однозначно связать автоматом определяемые либы с пакетом?

PS путь к либам указан /etc/ld.so.conf.d/oracle-client, ldconfig после этого запускал.

Если отключать autoreq, то нужно будет прописывать вручную все зависимости. В данном случае не хватает glibc, libxml2, openssl, zlib

ругается на нехватку libclntsh.so.11.1()(64bit)

а пакет oracle-instantclient11.2-basic предоставляет 64-х битную версию библиотеки или только 32bit?

Slavaz ★★★★★
()
Ответ на: комментарий от Slavaz

пакет 64-битный, в путях и на машине, где собиралось и где устанавливаю в ld.so.conf.d всё есть, пакет установлен, но rpm почему-то не «понимает», что эта либа из того пакета, хотя:

rpm -qpl oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
/usr/lib/oracle/11.2/client64/bin/adrci
/usr/lib/oracle/11.2/client64/bin/genezi
/usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1
/usr/lib/oracle/11.2/client64/lib/libnnz11.so
/usr/lib/oracle/11.2/client64/lib/libocci.so.11.1
/usr/lib/oracle/11.2/client64/lib/libociei.so
/usr/lib/oracle/11.2/client64/lib/libocijdbc11.so
/usr/lib/oracle/11.2/client64/lib/ojdbc5.jar
/usr/lib/oracle/11.2/client64/lib/ojdbc6.jar
/usr/lib/oracle/11.2/client64/lib/xstreams.jar

oxumorron
() автор топика
Ответ на: комментарий от oxumorron

Дык, в этом и проблема, ынтырпрайз во все поля, сонеймов нету. Они без AutoProv собирали, так что только без AutoReq собирать.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

Вот гады =(

А не подскажешь может какую-нибудь внятную доку по rpm-спекам? На rpm.org всё как-то разрознено и показалось, что некотрых моментов вообще нет.

oxumorron
() автор топика
Ответ на: комментарий от redgremlin

Значит я как-то неправильно читаю :-)

Спасибо за помощь!

oxumorron
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.