Я пытался разрешить следующую проблему с конфеткой / urllib2 Python:
[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 по умолчанию. Я думал, что исправил (воссоздание) этих ссылок совместимости в моем spec-файле, но, видимо, упорядочение скриптлетов 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
После этого все было персиковым.