You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Buildroot编译项目时遇xzcat版本XZ_5.2未找到错误求助

解决 xzcat: /lib/x86_64-linux-gnu/liblzma.so.5: version 'XZ_5.2' not found 错误

这个问题本质是你的系统里安装的liblzma.so.5库版本低于xz工具(包括xzcat)要求的XZ_5.2版本,不管是直接运行xz命令还是Buildroot编译时调用xz工具都会触发这个问题。下面是几种靠谱的解决方法:

方法一:重新安装系统自带的xz相关包(Debian/Ubuntu系优先)

如果你的系统是Debian、Ubuntu或者基于它们的发行版,直接通过包管理器更新并重新安装xz工具和依赖库就能解决:

sudo apt update && sudo apt install --reinstall xz-utils liblzma5

这条命令会拉取最新的包信息,然后重新安装xz-utils(包含xzcat等工具)和liblzma5,替换掉系统里旧版本的库文件。完成后再运行xz --version验证是否正常。

方法二:手动编译安装高版本的xz工具

如果系统源里的xz版本还是达不到要求(比如你用的是比较老的发行版),可以手动编译安装xz的源码包:

  1. 下载xz 5.2及以上版本的源码包(建议选稳定版,比如5.4.x系列)
  2. 解压源码包:
    tar -xf xz-*.tar.xz
    cd xz-*
    
  3. 配置编译参数,指定安装到系统目录:
    ./configure --prefix=/usr
    
  4. 编译并安装:
    make && sudo make install
    
  5. 安装完成后,运行xz --version确认版本和库依赖是否正常。

方法三:临时/永久指定高版本库路径(适合不想替换系统库的场景)

如果你已经有一个高版本的liblzma.so.5(比如从其他地方编译好的),可以通过指定库路径来让xz工具加载它:

  • 临时生效:运行命令时直接指定LD_LIBRARY_PATH:
    LD_LIBRARY_PATH=/path/to/your/high-version-liblzma xz --version
    
  • 永久生效:把库路径添加到系统的库配置中:
    1. 创建一个新的配置文件,比如sudo nano /etc/ld.so.conf.d/xz.conf
    2. 在文件里写入高版本liblzma所在的目录路径,比如/path/to/your/high-version-liblzma
    3. 执行sudo ldconfig让配置生效

额外提示(针对Buildroot编译场景)

如果是Buildroot编译时触发的这个问题,还要检查:

  • Buildroot的配置中是否指定了正确的xz版本(可以通过make menuconfig进入Toolchain或Package相关选项确认)
  • 本地系统的库是否干扰了交叉编译环境,建议尝试在干净的容器(比如Docker)中编译Buildroot项目,避免系统库的影响。

内容的提问来源于stack exchange,提问作者Jeffrey Urban

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:27:27