修复 yum、urllib2 和缺少依赖项的问题?

修复 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/librpm -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

此后,一切都很顺利。

相关内容