解决Debian包格式兼容:从zst到xz的手动转换与重打包教程

解决Debian包格式兼容:从zst到xz的手动转换与重打包教程

本文详解如何修复新系统生成的zst格式Debian包在旧系统上安装失败的“unknown compression”错误。通过"tar"、"dpkg-deb"等命令行工具手动解包、转换格式并重新打包,实现完美兼容。

开篇

由于GitHub环境是Ubuntu 22.04,而Debian 11以下版本不支持zst格式Debian软件包解压,我们需要将zst格式Debian软件包转换为xz格式

一、创建目录结构

bash
mkdir -p Newdeb build/DEBIAN

二、解压Debian软件包(假设文件名为1.deb)

bash
 ar x 1.deb

这将解压出data.tar.zstcontrol.tar.zst等文件。

三、安装zstd

确保系统上已安装zstd工具,以便能够解压zst文件:

bash
 sudo apt install zstd

四、解压zst文件

解压data.tar.zstcontrol.tar.zst文件:

bash
# 解压 data.tar.zst 到 build 目录
tar -I zstd -xvf data.tar.zst -C build/
# 解压 control.tar.zst 到 build/DEBIAN 目录
tar -I zstd -xvf control.tar.zst -C build/DEBIAN/

五、重新打包为新的Debian软件包

最后,我们使用dpkg-deb工具将build目录中的内容重新打包为一个新的Debian软件包,并指定使用xz压缩

bash
 dpkg-deb -Z xz -b build/ Newdeb/

这将生成一个新的Debian软件包在Newdeb目录中,该文件使用xz格式进行压缩,从而兼容Debian 11以下版本的系统。

微信支付
支付宝

感谢您的支持,这将激励我创作更多优质内容!

从零搭建Hexo静态博客:环境配置、主题安装到部署上线完全指南
Debian系统编译Linux内核deb包:从编译到打包安装全流程

评论区

评论加载中...