LINUX.ORG.RU

Как сменить зависимость от определенной библиотеки на другую


0

1

Произвожу сборку из чрута под 64 разрядный Red Hat. В сборках существуют расхождения в зависимостях (оригинала и тем, что у меня получается):
*** /dev/fd/63 2011-10-28 16:12:59.000000000 +0300
--- /dev/fd/62 2011-10-28 16:12:59.000000000 +0300
***************
*** 18,38 ****
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libgcc_s.so.1()(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
- libpthread.so.0(GLIBC_2.3.3)(64bit)
libpython2.6.so.1.0()(64bit)
librt.so.1()(64bit)
libssl.so.10()(64bit)
libstdc++.so.6()(64bit)
libutil.so.1()(64bit)
libwrap.so.0()(64bit)
libz.so.1()(64bit)
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
--- 18,37 ----
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libgcc_s.so.1()(64bit)
+ libgcc_s.so.1(GCC_3.0)(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libpython2.6.so.1.0()(64bit)
librt.so.1()(64bit)
libssl.so.10()(64bit)
libstdc++.so.6()(64bit)
+ libstdc++.so.6(CXXABI_1.3)(64bit)
libutil.so.1()(64bit)
libwrap.so.0()(64bit)
libz.so.1()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)

Мною выложен «diff -c». Необходимо избавиться от новых «+» и добавить тех, которые были не добавлены - "-".
Так как я являюсь новичом в сборке пакетом, может кто нибудь из гуру сможет меня просвятить - какие манипуляции необходимо совершить, чтобы удовлетворить зависимости - добавить/удалить/проапгредить/даунгрэйдить?

* собственно что означают эти зависимости, вопрос конечно непосильный, но если кто нибудь возьметься за просвящение, буду очень признателен. Спасибо!



Последнее исправление: mart7ini (всего исправлений: 1)

Чтобы получить ровно те же автоматические зависимости, нужно собирать ровно в таком же окружении.

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

Попахивает КО
Хорошо, предположим МНЕ нужно из несколько другого окружения получить несколько то, с чего начать? воды я уже начитался

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

Исправить несколько другое окружение так, чтобы оно совпадало с тем, в котором собирался исходный пакет. Каких сакральных знаний ты ещё хочешь?

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

Хорошо, предположим МНЕ нужно из несколько другого окружения получить несколько то, с чего начать?

Начать нужно с обоснования необходимости одинакового списка зависимостей.

reader
()
Ответ на: комментарий от mv

Скажем так, я не смогу узнать какое окружение было использовано, поэтому путем добавления/удаления пакетов я должен разрешить эти зависимости.
К примеру,

libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
- libpthread.so.0(GLIBC_2.3.3)(64bit)

что нужно сделать, что еще и GLIBC_2.3.3 при компиляции был задействован, не знаю как сформулировать, слинковался во время компиляции, что ли, и как его в систему собственно добавить?

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

если он будет собран под GLIBC_2.3.3 не исчезнут ли тогда зависимости от GLIBC_2.3.2?
* а если искать, то нужно дополнительные репозитарии подключить? мдя.. как узнать собственно, собран он под 2.3.3 или нет, имея лишь yum - yum info ?

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

если он будет собран под GLIBC_2.3.3 не исчезнут ли тогда зависимости от GLIBC_2.3.2?

В скобочках указываются версии abi библиотеки. glibc за собой тянет много версий для совместимости.

а если искать, то нужно дополнительные репозитарии подключить?

Хуже: нужно ставить точно такие же версии библиотек, какие использовались при сборке. Это и называется «воссоздать такое же окружение». В репозиториях обычно только самые последние версии библиотек хранятся.

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

> Хуже: нужно ставить точно такие же версии библиотек, какие использовались при сборке. Это и называется «воссоздать такое же окружение». В репозиториях обычно только самые последние версии библиотек хранятся.

В данном случае что мне нужно ставить или делать, чтобы была слинковка с нужной версией libpthread?

mart7ini
() автор топика

typical_sszb_newfag.jpg

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