Как диагностировать и решить: /usr/lib64/libz.so.1: информация о версии недоступна

У меня было адское время установки lxml для Python 2.7 на CentOS 5.6. Для некоторого фона Python 2.7 является альтернативной установкой Python на CentOS 5.6, которая поставляется с установленным Python 2.4.

это был тупой источник, согласно его наставлениям

./configure
make
make altinstall

Однако примерно после 20 часов попыток мне удалось найти работоспособное решение и установить lxml,

Пока я не заметил следующую ошибку в верхней части интерпретатора:

python2.7: /usr/lib64/libz.so.1: no version information available (required by python2.7)
Python 2.7.2 (default, Jun 30 2011, 18:55:26) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 'Sheeeeut!'

Эта ошибка выводится каждый раз, когда я запускаю скрипт.

Например:

$ ./test.py
/usr/local/bin/python2.7: /usr/lib64/libz.so.1: no version information available (required by /usr/local/bin/python2.7)

Скрипт работает без нареканий, но эта ошибка надоедливая. После некоторого копания я, кажется, считаю, что у меня неправильная версия libz установлено, что это либо более старая версия, либо созданная для другой платформы.

Я не совсем уверен, как, я только установил libz через yum, насколько я знаю. Хотя я не могу вспомнить каждую мелочь, которую я пробовал за двадцать часов попыток.

Вы также можете быть заинтересованы в том, что мой lib64 папка выглядит, вот некоторая информация

$ ls -ltrh libz*
-rwxr-xr-x 1 root root  84K Jan  9  2007 libz.so.1.2.3
-rwxr-xr-x 1 root root 107K Jan  9  2007 libz.a
-rwxr-xr-x 1 root root 154K Feb 22 23:30 libzdb.so.7.0.2
lrwxrwxrwx 1 root root   13 Apr 20 20:46 libz.so.1 -> libz.so.1.2.3
lrwxrwxrwx 1 root root   15 Jun 30 18:43 libzdb.so.7 -> libzdb.so.7.0.2
lrwxrwxrwx 1 root root   13 Jul  1 11:35 libz.so -> libz.so.1.2.3
lrwxrwxrwx 1 root root   15 Jul  1 11:35 libzdb.so -> libzdb.so.7.0.2

Обратите внимание: предметы, которые говорят 1 июля или 30 июня, от меня. Первоначально я переместил эти файлы в папку для резервных копий, так как они выглядели как дубликаты, и у меня была дата после / во время моих проблем, о которых я упоминал ранее, что я имел с lxml

Одно из намерений - полностью удалить Python 2.7 и переустановить. Я думаю, что это установить в /usr/local/ был плохой выбор по умолчанию. Однако без make uninstall При наличии такой опции решение кажется трудоемким, и я не совсем уверен, что решит мою проблему.

3 ответа

From Что означает ошибка "нет информации о версии" в динамическом компоновщике Linux?, относящиеся к libpam:

"Информация о версии недоступна" означает, что номер версии библиотеки ниже для общего объекта. Например, если ваш номер major.minor.patch равен 7.15.5 на компьютере, на котором вы создаете двоичный файл, а номер major.minor.patch - 7.12.1 на установочном компьютере, ld выведет предупреждение.

Вы можете исправить это, скомпилировав библиотеку (заголовки и общие объекты), которая соответствует версии общего объекта, поставляемой с вашей целевой ОС. Например, если вы собираетесь установить RedHat 3.4.6-9, вы не хотите компилировать в Debian 4.1.1-21. Это одна из причин, по которой большинство дистрибутивов поставляются для определенных дистрибутивов Linux.

В противном случае вы можете статически связать. Однако вы не хотите делать это с чем-то вроде PAM, поэтому вы действительно хотите установить среду разработки, соответствующую производственной среде вашего клиента (или, по крайней мере, установить и связать с правильными версиями библиотеки).

У меня есть несколько версий в моей системе и столкнулся с той же проблемой. Под /usr/bin Я создал python-2.4.3 файл и указал на Python, который исправил мою проблему. python-2.4.3 был стерт как-то после компиляции других моих версий, которые мы используем. Я считаю, что проблема заключается в приложении yum, которое встроено в Python 2.4.3.

yum install python-lxml

Должен сделать трюк

Другие вопросы по тегам