www. On IT Road .com
解决方案
zlib 已损坏,通常 zlib 包含以下文件。
在 x86_64 平台上:
# rpm -ql zlib-1.2.3-27.el6.x86_64 /lib64/libz.so.1 /lib64/libz.so.1.2.3 /usr/share/doc/zlib-1.2.3 /usr/share/doc/zlib-1.2.3/ChangeLog /usr/share/doc/zlib-1.2.3/FAQ /usr/share/doc/zlib-1.2.3/README
在 x86 平台上:
# rpm -ql zlib-1.2.3-27.el6.i686 /lib/libz.so.1 /lib/libz.so.1.2.3 /usr/share/doc/zlib-1.2.3 /usr/share/doc/zlib-1.2.3/ChangeLog /usr/share/doc/zlib-1.2.3/FAQ /usr/share/doc/zlib-1.2.3/README
当 zlib 损坏时,rpm 命令也损坏了。
所以我们不能简单地使用rpm或者yum命令来重新安装zlib。
你可以在这里做的是:
- 在另一台 CentOS/RHEL 服务器上,从具有相同版本的 rpm 中提取 zlib 共享库(例如这里的 zlib-1.2.3-27.el6)。
2.解压rpm:
# rpm2cpio zlib-1.2.3-27.el6.[arch].rpm | cpio -idvm
- 根据服务器架构,将 [arch] 替换为 x86_64 或者 i686:
# rpm2cpio zlib-1.2.3-27.el6.x86_64.rpm | cpio -idvm ./lib64/libz.so.1 ./lib64/libz.so.1.2.3 ./usr/share/doc/zlib-1.2.3 ./usr/share/doc/zlib-1.2.3/ChangeLog ./usr/share/doc/zlib-1.2.3/FAQ ./usr/share/doc/zlib-1.2.3/README 300 blocks
- 将 lib.so.1.2.3 和 lib.so.1 移动到正确的位置:
在 x86_64 平台上:
# mv ./lib64/libz.so.* /lib64
在 x86 平台上:
# mv ./lib/libz.so.* /lib
- 重建库缓存:
# ldconfig
现在 rpm 命令应该可以正常运行了。
- 或者,重新安装 zlib 以修复其他可能的问题:
# yum reinstall zlib
问题
执行rpm命令时,看到如下错误:
rpm: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file 《 -- Rpm:加载共享库时出错:Libz.so.1:无法打开共享对象文件:没有这样的文件
缺少 zlib 分片库:
# ls -l /lib64/libz.so* ls: /lib64/libz.so*: No such file or directory # ls -l /lib/libz.so* ls: /lib/libz.so*: No such file or directory
说明
类似的问题可能发生在下面提到的其他包中:
rpm: error while loading shared libraries: libdb-4.7.so: cannot open shared object file: No such file or directory
为了解决这个问题,找到哪个包提供了丢失的文件:
# yum provides */libdb* Loaded plugins: security, ulninfo db4-4.7.25-19.el6_6.i686 : The Berkeley DB database library (version 4) for C Repo : ol6_latest_local Matched from: Filename : /usr/lib/libdb-4.7.so Filename : /lib/libdb-4.7.so
重新安装软件包,或者复制提取 rpm 的丢失文件。
日期:2020-09-17 00:14:09 来源:oir作者:oir