赞
踩
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。