rpm:/lib64/liblzma.so.5:版本`XZ_5.1.2alpha'找不到(/lib/librpmio.so.3要求)

时间:2017-12-04 12:53:02

标签: rpm rhel

我遇到了这个错误。无法安装任何RPM。请帮忙

操作系统是RHEL6.9 64位

提前致谢。

4 个答案:

答案 0 :(得分:2)

自2017年11月27日我从CentOS 7.4的来源安装XZ Utils 5.2.3并将liblzma.so.5.2.3/usr/local/lib/复制到/lib64/以来,我遇到了类似的问题。

此问题的原因是库librpmio.so.3,它需要在lzma共享库中定义符号XZ_5.1.2alphaliblzma.so.5.2.2定义了此符号,但liblzma.so.5.2.3没有。

没有XZ更新,最新版本的lzma库是5.2.2,我有符号链接/lib64/liblzma.so.5 - > /lib64/liblzma.so.5.2.2。在复制liblzma.so.5.2.3和一些进一步更新后,链接已更改为最新文件,即/lib64/liblzma.so.5 - > /lib64/liblzma.so.5.2.3。这破坏了rpmyum命令。 所以,解决方案是:

  1. /lib64/liblzma.so.5链接回/lib64/liblzma.so.5.2.2

    cd /lib64
    sudo ln -s -f liblzma.so.5.2.2 liblzma.so.5
    
  2. 删除档案/lib64/liblzma.so.5.2.3

  3. 第二个可能的原因可能是环境变量LD_LIBRARY_PATH。检查它是否包含不需要的路径并清除它。

答案 1 :(得分:0)

当您从RHEL(或CentOS)7系统上的源下载并安装xz时,会发生这种情况。问题是xz的已发布版本中不存在XZ_5.1.2alpha标签,但它出现在RedHat发布的版本中并进行编译。

xz源的小补丁将解决问题:

https://github.com/easybuilders/easybuild-easyconfigs/issues/4036

补丁足够小,可以在这里复制和粘贴。我已成功在xz-5.2.4上使用它。

--- src/liblzma/liblzma.map.orig    2015-09-29 12:57:36.000000000 +0200
+++ src/liblzma/liblzma.map 2017-02-22 11:10:33.432868185 +0100
@@ -95,7 +95,13 @@
    lzma_vli_size;
 };

-XZ_5.2 {
+XZ_5.1.2alpha {
+global:
+   lzma_stream_encoder_mt;
+   lzma_stream_encoder_mt_memusage;
+} XZ_5.0;
+
+XZ_5.2.2 {
 global:
    lzma_block_uncomp_encode;
    lzma_cputhreads;
@@ -105,4 +111,4 @@

 local:
    *;
-} XZ_5.0;
+} XZ_5.1.2alpha;

答案 2 :(得分:0)

就我而言: 在/etc/bashr and ~/.bashrc

中将包含导出到变量“ LD_LIBRARY_PATH”的行标记为注释

答案 3 :(得分:0)

只需删除liblzma.so.5.2.3,yum将再次起作用。由于https://software.intel.com/en-us/cluster-checker-user-guide-getting-started中的source psxevars.sh而失败了。