dpkg-deb: error: archive 'xxxxx.deb' has premature member 'control.tar.xz' before 'control.tar.gz'

本文解决dpkg在处理tar.xz格式control文件时的错误,更新dpkg到1.17.5ubuntu5.8或以上版本可修复此bug。同时,为提高软件包兼容性,建议使用gz压缩control部分,使用xz压缩data部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装dpkg报错:

dpkg-deb: error: archive 'xxxxx.deb' has premature member 'control.tar.xz' before 'control.tar.gz' ,giving up

这个问题的原因是:dpkg无法解析tar.xz格式的control.tar.xz文件。
解决方案:
更新dpkg即可,这是dpkg工具的bug,只在旧版的dpkg会出现这个问题。在dpkg_1.17.5ubuntu5.8以及之后的版本都不会出现这个问题,dpkg_1.17.5ubuntu5.8这个版本也是ubuntu14.04自带源内的版本。

旧版的系统上更新dpkg就可以解决

软件的提供者

对于软件安装包的提供者而言,一定是希望安装包具有更好的兼容性。最好可以使用xz压缩data部分,仍然用gzip打control部分。旧版的dpkg-deb,默认会把control和data分开用不同的格式打包,control默认始终使用gzip的格式打包。而新版的dpkg-deb(1.19.0)之后都会使用相同的格式压缩control和data。如果你指定了-Z xz ,那就都是xz。

还好,dpkg-deb提供了一个参数:--no-uniform-compression加上这一句就可以了。

默认是:--uniform-compression,代表使用统一的格式进行压缩。加上--no-uniform-compression后不再统一,control使用gz压缩。
详见:http://www.tin.org/bin/man.cgi?section=1&topic=dpkg-deb

`dpkg-deb: error: 'nginx.conf.dpkg' is not a Debian format archive` 是一个错误信息,表示你尝试使用 `dpkg-deb` 命令处理的文件 `nginx.conf.dpkg` 不是一个符合 Debian 格式的归档文件。 在 Debian 和基于 Debian 的系统(如 Ubuntu)中,`.deb` 文件是用于分发软件包的标准格式。这些文件通常包含已编译的软件、配置文件以及控制脚本等。 要解决这个问题,你可以检查以下几点: 1. **文件扩展名**:确保你正在处理的文件确实是一个 `.deb` 文件。如果文件扩展名不是 `.deb`,那么它可能不是正确的格式。 2. **文件内容**:确认文件的内容是否为有效的 Debian 软件包。你可以使用 `ar` 命令来查看 `.deb` 文件的内容结构: ```sh ar t nginx.conf.dpkg ``` 如果输出显示了类似 `debian-binary control.tar.gz data.tar.gz` 这样的内容,那么这个文件就是一个有效的 `.deb` 文件。 3. **下载或复制问题**:如果你是从网络上下载或复制该文件,确保下载或复制过程没有出错。可以尝试重新下载或重新复制文件。 4. **文件损坏**:文件可能在传输过程中损坏。如果是这样,你可能需要重新获取该文件。 如果你确定文件是正确的 `.deb` 文件,但仍然遇到问题,可以尝试使用以下命令来安装或提取 `.deb` 文件: - 安装 `.deb` 文件: ```sh sudo dpkg -i nginx.conf.dpkg ``` - 修复依赖关系: ```sh sudo apt-get install -f ``` 希望这些建议能帮助你解决问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值