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

dist-upgrade中断后dpkg-deb报lzma_stream_encoder_mt_memusage缺失如何修复?

解决dpkg-deb的lzma符号缺失问题

这问题我之前帮朋友排查过类似的,本质是系统里的liblzma.so.5版本与dpkg-deb依赖的版本不匹配,而且你手动编译安装的库还打乱了系统库的加载优先级。给你一套靠谱的修复步骤:

第一步:清理手动编译的liblzma库

你之前从源码编译安装的liblzma默认会放到/usr/local/lib,这个路径在系统库加载顺序里优先级比系统默认的/usr/lib高,导致dpkg-deb优先调用了不完整的自定义版本。先把它删掉:

sudo rm /usr/local/lib/liblzma.so.5
sudo rm /usr/local/lib/liblzma.so  # 连带删除关联的软链接

然后更新系统库缓存,让系统重新识别默认库:

sudo ldconfig

第二步:强制重新安装系统原生的依赖包

中断的dist-upgrade可能导致liblzma5和dpkg的文件损坏或版本不匹配,用--force-all参数强制重新安装:

sudo apt update
sudo apt install --reinstall --force-all liblzma5 dpkg

如果执行过程中还有依赖报错,先修复dpkg的状态:

sudo dpkg --configure -a
sudo apt -f install

第三步:修复liblzma的软链接(可选,若前两步无效)

有些情况下,系统的liblzma软链接会被错误替换,手动重新指向正确的系统库:

  1. 先确认系统原生liblzma的路径(64位系统一般是这个,32位的话把x86_64-linux-gnu换成i386-linux-gnu):
ls -l /usr/lib/x86_64-linux-gnu/liblzma.so.5
  1. 删除错误的软链接并重建:
sudo rm /usr/lib/liblzma.so.5
sudo ln -s /usr/lib/x86_64-linux-gnu/liblzma.so.5 /usr/lib/liblzma.so.5
sudo ldconfig

为什么之前的方法没用?

你手动编译liblzma时,默认的./configure没有开启多线程(mt)相关的编译选项,导致生成的库缺失lzma_stream_encoder_mt_memusage这个符号。而Ubuntu官方包的liblzma是默认启用了这些功能的,所以必须让系统回到使用官方库的状态。

内容的提问来源于stack exchange,提问作者0xdd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:01:01