Назад | Перейти на главную страницу

Устранение проблем с yum, urllib2 и отсутствующими зависимостями?

Я пытался решить следующую проблему с yum / python urllib2:

[root@...]# yum
Traceback (most recent call last):
  File "/usr/bin/yum", line 4, in ?
    import yum
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 51, in ?
    import config
  File "/usr/lib/python2.4/site-packages/yum/config.py", line 27, in ?
    from parser import ConfigPreProcessor
  File "/usr/lib/python2.4/site-packages/yum/parser.py", line 3, in ?
    import urlgrabber
  File "/usr/lib/python2.4/site-packages/urlgrabber/__init__.py", line 53, in ?
    from grabber import urlgrab, urlopen, urlread
  File "/usr/lib/python2.4/site-packages/urlgrabber/grabber.py", line 412, in ?
    import keepalive
  File "/usr/lib/python2.4/site-packages/urlgrabber/keepalive.py", line 339, in ?
    class HTTPSHandler(KeepAliveHandler, urllib2.HTTPSHandler):

AttributeError: 'module' object has no attribute 'HTTPSHandler'

Я попытался обновить python, чтобы посмотреть, исправит ли он библиотеку:

rpm -Uvh python-2.4.3-44.el5.x86_64.rpm

Но после перезагрузки ничего не изменилось, поэтому решил посмотреть, что не так:

prelink -all
rpm -Va

Это приводит к МНОГО неудовлетворенных зависимостей:

Unsatisfied dependencies for gnome-panel-2.16.1-7.el5.i386: libpangocairo-1.0.so.0
Unsatisfied dependencies for gtkhtml3-3.16.3-1.el5.i386: libpangocairo-1.0.so.0
Unsatisfied dependencies for libgnomeui-2.16.0-5.el5.i386: libpangocairo-1.0.so.0
...
missing     /lib/libz.so.1
missing     /lib/libz.so.1.2.3
missing     /usr/lib/libz.so.1
missing     /usr/lib/libz.so.1.2.3
Unsatisfied dependencies for Nessus-4.4.0-es4.i386: libcrypto.so.4, libssl.so.4
...

Я не уверен, что дает libpangocairo-1.0.so.0, и ни то, ни другое rpm, поэтому я начал с проверки того, что предоставляет libz.so.1 и пытаюсь обновить его:

[root@...]# rpm -q --whatprovides libz.so.1
zlib-1.2.3-4.el5.i386

[root@...]# rpm -Uvh --force zlib-1.2.3-4.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:zlib                   ########################################### [100%]

После обновления libz.so.1 и libz.so.1.2.3 все еще не существует под /usr или /usr/lib, и бег rpm -Va по-прежнему сообщает, что файлы отсутствуют.

Когда я пытаюсь find / -name 'libz.so.1, результаты только в /lib64 и /usr/lib64, которые, как мне кажется, исходят от x86_64 версия пакета, который также установлен.

Как мне продолжить?

Я столкнулся с этим сегодня на новой виртуальной машине CentOS 5.11. Я знаю, что ОС больше не "официально" поддерживается, но ... заказчики.

В моем случае я обновил openssl до 1.0.2m с openssl-0.9.8e-27.el5_10.4 по умолчанию. Я думал, что исправил (воссоздание) этих ссылок совместимости в моем файле спецификации, но, видимо, упорядочение скриптлетов rpm снова укусило меня.

В / lib есть две символические ссылки, которые мне пришлось воссоздать:

# ln -s /usr/lib/libcrypto.so.1.0.0 /lib/libcrypto.so.6
# ln -s /usr/lib/libssl.so.1.0.0 /lib/libssl.so.6

После этого все было радужно.