求助:libz.so.1:no version information available

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助:libz.so.1:no version information available相关的知识,希望对你有一定的参考价值。

今天安装一个软件,使用了libz.so.1这样一个动态链接库,编译时没有问题,但是运行时总是提示:libz.so.1:no version information available(...required),其中。。。为安装软件的名称。google一上午没有解决问题,最后实在没有办法,请教老大,两分钟搞定。
原来这是因为编译时使用的makefile中引用的动态链接库和实际运行时使用的动态链接库不同造成的。可以通过
ldd application_path/executable查看可执行文件的动态链接库,然后与makefile文件中的动态链接库对比不是一个链接库,因此在$LD_LIBRARY_PATH中添加makefile中引用的动态链接库所在路径path加入到LD_LIBRARY_PATH中:export LD_LIBRARY_PATH=path:$LD_LIBRARY_PATH。这样运行时就会首先查找path中的动态链接库从而找到正确的动态链接库,程序也恢复正常。
参考技术A 没有可用的版本信息

rpm:error while loading shared libraries: libz.so.1: cannot open shared object file: No such file o

由于要离线升级服务器中zlib版本,但rpm安装时会提示版本冲突,于是rpm -e --nodeps zlib强制将zlib,

然而再执行rpm安装zlib-1.2.7-18.el7.x86_64时提示了错误:

rpm:error while loading shared  libraries: libz.so.1: cannot open shared object file: No such file or directory

解决方案有:

1、可以从同一版本系统中拷贝/usr/lib64/下的libz.so.1.2.7和libz.so.1到U盘中,U盘挂载到服务器中再进行拷贝恢复

查看磁盘分区名

# fdisk -l 

挂载U盘到/mnt目录下

# mount /dev/***  /mnt/

然后复制libz.so.1.2.7和libz.so.1到/usr/lib64/下

卸载U盘

# umount /dev/***

2、进入单用户模式从内核中复制

开机到选择系统界面时按e,找到出现“ro”的一行将 “ro” 替换成rw init=/sysroot/bin/sh

改完按Ctrl + X进入单机模式

技术图片

 

 直接从/lib64目录复制libz.so.1.2.7和libz.so.1到/sysroot/usr/lib64/下

cp /lib64/libz.so.1.2.7 /sysroot/usr/lib64/

cp /lib64/libz.so.1 /sysroot/usr/lib64/

chroot /sysroot  获取root权限

# rpm -ivh zlib-1.2.7-18.el7.x86_64.rpm

 

以上是关于求助:libz.so.1:no version information available的主要内容,如果未能解决你的问题,请参考以下文章

error while loading shared libraries: libz.so.1

编译Uboot时提示error while loading shared libraries: libz.so.1: cannot open shared object file: No such f

rpm:error while loading shared libraries: libz.so.1: cannot open shared object file: No such file o

bad ELF interpreter: No such file or directory

解决 yum安装时报错 Error: Protected multilib versions: 报错

Ubuntu如何查找libz.so.1属于哪个包并安装