我正在尝试使用make package install
安装越狱调整,但我从dpkg收到此错误:
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扩展名,但是我不确定为什么要创建该文件。感谢您的帮助。
我发现了解决方法。在$THEOS/makefiles/package/deb.mk
中替换此行:
$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
带有此行:
$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
创建.deb
文件是因为您告诉Theos构建系统执行此操作。 Makefile的package install
规则是使用xz
压缩来创建Debian软件包。现在,等于或高于1.15.6的dpkg
版本支持这种压缩。
因此,为了解决您的问题,您应该将dpkg
更新为较新版本,或者在没有包装支持的情况下安装Theos。可能只需一个简单的make install
即可。
如果无法更新dpkg
,并且您不想在没有程序包管理支持的情况下安装程序,另一种(更痛苦的方法)是更改压缩程序包的算法。 Here您具有有关如何执行此操作的良好信息。
就我而言,我在Ubuntu 18.04上构建了一个软件包,并试图在Debian 7(已隔离)上安装该软件包。我必须更改Makefile
中的行,内容为:
dpkg --build $(DESTDIR)
.. to:
dpkg-deb --build -Zgzip $(DESTDIR)
感谢康纳!