rpm:/lib64/liblzma.so.5:未找到版本“XZ_5.1.2alpha”(/lib/librpmio.so.3 需要)

Sac*_*ind 5 rpm rhel

我被这个错误困住了。无法安装任何 RPM。请帮忙

操作系统是 RHEL6.9 64 位

提前致谢。

Nem*_*emo 6

当您从 RHEL(或 CentOS)7 系统上的源下载并安装 xz 时,会发生这种情况。问题是该XZ_5.1.2alpha标签在 xz 的已发布版本中不存在,但在 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;
Run Code Online (Sandbox Code Playgroud)

  • RHEL 新手,我们如何应用此补丁? (3认同)

小智 4

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

此问题的原因是库librpmio.so.3需要XZ_5.1.2alpha在 lzma 共享库中定义符号。liblzma.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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 删除文件/lib64/liblzma.so.5.2.3

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