2014-01-09 38 views
8

我試圖用make package install安裝越獄的調整,但我從dpkg的收到此錯誤:dpkg的錯誤:包含ununderstood數據成員

dpkg-deb: file `/tmp/_theos_install.deb' contains ununderstood data member data.tar.xz  , giving up 
dpkg: error processing /tmp/_theos_install.deb (--install): 
subprocess dpkg-deb --fsys-tarfile returned error exit status 2 
Errors were encountered while processing: 
/tmp/_theos_install.deb 
make: *** [internal-install] Error 1 

所以據我可以告訴它不能瞭解.xz擴展名,但我不知道爲什麼該文件正在創建。謝謝您的幫助。

回答

24

我發現瞭如何解決它。這條線

$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END) 

:在$THEOS/makefiles/package/deb.mk替換該行

$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END) 
+0

非常感謝!它工作完美 – Ravi

+0

我面臨着同樣的問題,並使用Ubuntu的,但無法找到'deb.mk'文件。 –

+0

如果我必須來看看這個...再一次...我要尖叫! –

5

.deb文件被創建是因爲您告訴Theos構建系統來做到這一點。 Makefile的package install規則使用xz壓縮來創建Debian軟件包。現在,dpkg等於或高於1.15.6的版本支持這種壓縮。

因此,爲了解決您的問題,您應該將dpkg更新爲較新的版本或安裝Theos而無需打包支持。可能是一個簡單的make install將做到這一點。

如果無法更新dpkg並且您不想在沒有軟件包管理支持的情況下安裝該程序,另一個(更痛苦的)方法是更改​​壓縮包的算法。 Here你有關於如何做到這一點的好信息。

+0

如何更改包安裝規則? – connor

+0

以爲我不推薦你,如果你想這樣做,你可以找到規則在'Makefile'文件中做了什麼。 – rul

+0

我不認爲我可以更新dpkg,因爲我已經有了ios的最新版本。那麼你建議什麼? – connor