安裝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