如何诊断和解决:/usr/lib64/libz.so.1:没有可用的版本信息

如何诊断和解决:/usr/lib64/libz.so.1:没有可用的版本信息

度过了一段非常愉快的时光在 CentOS 5.6 上安装lxmlPython 2.7。背景知识:Python 2.7 是 CentOS 5.6 上 Python 的另一种安装方式,它自带 Python 2.4。

它是根据其说明从源头构建的

./configure
make
make altinstall

然而,经过大约 20 个小时的尝试,我终于找到了一个可行的解决方案并且能够安装lxml

直到,我注意到解释器顶部出现以下错误:

python2.7: /usr/lib64/libz.so.1: no version information available (required by python2.7)
Python 2.7.2 (default, Jun 30 2011, 18:55:26) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 'Sheeeeut!'

每次运行脚本时都会打印出此错误。

例如:

$ ./test.py
/usr/local/bin/python2.7: /usr/lib64/libz.so.1: no version information available (required by /usr/local/bin/python2.7)

脚本运行完美,但这个错误很烦人。经过一番挖掘,我似乎认为我libz安装的版本错误,要么是旧版本,要么是为其他平台构建的。

我不太清楚如何操作,据我所知,我只libz通过进行过安装yum。不过,我记不清在二十个小时的尝试中尝试过的每一件小事了。

你可能也对我的lib64文件夹感兴趣,以下是一些信息

$ ls -ltrh libz*
-rwxr-xr-x 1 root root  84K Jan  9  2007 libz.so.1.2.3
-rwxr-xr-x 1 root root 107K Jan  9  2007 libz.a
-rwxr-xr-x 1 root root 154K Feb 22 23:30 libzdb.so.7.0.2
lrwxrwxrwx 1 root root   13 Apr 20 20:46 libz.so.1 -> libz.so.1.2.3
lrwxrwxrwx 1 root root   15 Jun 30 18:43 libzdb.so.7 -> libzdb.so.7.0.2
lrwxrwxrwx 1 root root   13 Jul  1 11:35 libz.so -> libz.so.1.2.3
lrwxrwxrwx 1 root root   15 Jul  1 11:35 libzdb.so -> libzdb.so.7.0.2

注意:标明 7 月 1 日或 6 月 30 日的项目来自我。我最初将这些文件移到备份文件夹中,因为它们似乎是重复的,并且日期是在我之前提到的问题之后/期间。lxml

一种倾向是完全删除 Python 2.7 并重新安装。我认为将其安装到 Python 2.7/usr/local/是一个糟糕的默认选择。但是,如果没有这个make uninstall选项,这似乎是一项耗时的任务,我不太确定这个解决方案是否能解决我的问题。

答案1

Linux 动态链接器出现“没有可用的版本信息”错误是什么意思?,关于 libpam :

“没有可用的版本信息”意味着共享对象上的库版本号较低。例如,如果您在构建二进制文件的计算机上的 major.minor.patch 编号为 7.15.5,而在安装计算机上的 major.minor.patch 编号为 7.12.1,则 ld 将打印警告。

您可以通过使用与目标操作系统附带的共享对象版本相匹配的库(标头和共享对象)进行编译来解决此问题。例如,如果您要安装到 RedHat 3.4.6-9,则不想在 Debian 4.1.1-21 上进行编译。这是大多数发行版都针对特定 Linux 发行版编号发行的原因之一。

否则,您可以静态链接。但是,您不想使用 PAM 之类的东西来执行此操作,因此您需要实际安装与客户的生产环境相匹配的开发环境(或至少安装并链接到正确的库版本)。

答案2

我的系统上有多个版本,遇到了同样的问题。/usr/bin我在下面创建了python-2.4.3文件并将其指向 python,这解决了我的问题。python-2.4.3在编译我们正在使用的其他版本后,不知怎么就被删除了。我相信问题出在 python 2.4.3 中内置的 yum 应用程序上。

答案3

yum install python-lxml

应该可以

相关内容