我一直在尝试使用 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
也已安装的包的版本。
我该如何继续?
答案1
我今天在一台全新的 CentOS 5.11 VM 上遇到了这个问题。我知道该操作系统不再“正式”受支持,但是……客户。
就我而言,我已将 openssl 从默认的 openssl-0.9.8e-27.el5_10.4 更新到 1.0.2m。我以为我已经修复了 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
此后,一切都很顺利。