Я пытался решить следующую проблему с 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
После этого все было радужно.