用上everest0.5.2之后,可以在线升级。自从6月11号升级了一下,结果yumex就不能用了,后来发现yum都不能用,报错如下:
[root@fan3838 ~]# yum
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
/usr/lib/libgpgme.so.11: undefined symbol: gpg_err_code_from_syserror
Please install a package which provides this module, or
verify that the module is installed correctly.
It's possible that the above module doesn't match the
current version of Python, which is:
2.5.2 (r252:60911, May 30 2008, 11:51:16)
[GCC 4.1.2 20070821 (Everest 4.1.2-19)]
If you cannot solve this problem yourself, please go to
the yum faq at:
http://wiki.linux.duke.edu/YumFaq
[root@fan3838 ~]#
|
看提示是这个libgpgme.so.11里面没有定义一个函数。昨天一直从gpgme入手,怎么更新gpgme包都无果。在论坛上问了,也没有说什么原因。今天慷慨过来,我让他帮着看看,他也是说肯定是依赖的问题,gpgme可能依赖其他的包出问题了。结果看了一下rpm依赖信息
[root@fan3838 ~]# rpm -q gpgme-1.1.6-4 --requires
/sbin/ldconfig
/sbin/ldconfig
gnupg2
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libdl.so.2
libgpg-error.so.0
libgpgme-pth.so.11
libgpgme-pthread.so.11
libgpgme.so.11
libnsl.so.1
libpth.so.20
libpthread.so.0
libpthread.so.0(GLIBC_2.0)
libpthread.so.0(GLIBC_2.2)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsLzma) <= 4.4.6-1
[root@fan3838 ~]#
|
我首先看了一下和gpgme有关的,第一个关注libgpg-error.so.0这个文件,发现系统里面和gpgme相关的三个包pygpgme,gpgme-devel,gpgme里面都没这个文件,这个文件估计在/usr/lib里面,结果的确是在此目录,看看此文件属于哪个包
[root@fan3838 ~]# rpm -qf /usr/lib/libgpg-error.so.0
libgpg-error-1.1-1.2.1
|
在linux-ren的ftp上一看,最新的这个包版本是libgpg-error-1.6-2.i686.rpm,升级此包,yum可以正常使用了。
回想了一下,事情其实很简单,产生这种现象的原因,是因为我升级的时候,一般习惯选择某些包升级,然后再升级另外一些。如果我当时全部升级,肯定不会出现这个问题。而yum升级的时候,也存在问题。yum依赖gpgme,gpgme却依赖libgpg-error,然是yum却没有写依赖libgpg-error。这样我升级的时候,并没有报依赖问题,所以升级看似很正常,但是中间却出现了问题,而且这个问题测试都很难测出来。并且执行yum的报错也很模糊,只告诉gpgme有问题,但是怎么重装gpgme都无法解决。其实当时就应该想到可能是gpgme的相关依赖除了问题了。总之,以后有经验了。
阅读(2537) | 评论(0) | 转发(0) |