Reputation: 64644
I'm trying to install a jailbreak tweak using make package install
but I'm receiving this error from 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
So as far as I can tell it isn't able to understand the .xz extension, but I'm not sure why that file is being created. Thanks for the help.
Upvotes: 10
Views: 25865
Reputation: 41
Another option that you can try is to unpack the .deb that you where trying to install and repack with no XZ compression.
Unpack:
mkdir package/ && dpkg -x package.deb package/
Pack:
dpkg-deb --build -Zgzip package/
You can then rename the resulting package with:
dpkg-name -o package.deb
Or simply name the package
dir with the name of your package.
Important: In order to perform this, you need to install dpkg-dev
package:
sudo apt update
sudo apt install dpkg-dev
Upvotes: 1
Reputation: 604
In my case I was building a package on Ubuntu 18.04 and trying to install that package on Debian 7 (airgapped). I had to change the line in the Makefile
that read:
dpkg --build $(DESTDIR)
..to:
dpkg-deb --build -Zgzip $(DESTDIR)
Thanks Connor!
Upvotes: 0
Reputation: 64644
I found out how to fix it. In $THEOS/makefiles/package/deb.mk
replace this line:
$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
with this line:
$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)
Upvotes: 26
Reputation: 824
The .deb
file is created because you told Theos build system to do that. The package install
rule of the Makefile is creating the Debian package using xz
compression. Now, this kind of compression is supported by versions of dpkg
equal or higher than 1.15.6.
So, in order to solve your problem, you should update dpkg
to a newer version or install Theos without packaging support. Probably a simple make install
will do it.
In case that updating dpkg
isn't possible and you don't want to install the program without package management support, the other (more painful) method is to change the algorithm in which the package is compressed. Here you have good information about how to do this.
Upvotes: 6