including i386 dependencies when trying to install a deb file on raspberry pi
Hi everyone,
I'm trying to install a 32-bit x86 deb file on my raspberry pi (pi4, 8gb, 32-bit armhf raspberry pi os ). I compiled box86 alright (I believe), but when I try to apt install the deb file, this occurs:
pi@raspberrypi:~/Downloads $ sudo box86 apt install ./astrill-setup-linux.deb
Box86 with Dynarec v0.1.7 670b1359 built on Dec 11 2020 18:46:08
Error: reading elf header of /usr/bin/apt, try to launch natively instead
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'astrill:i386' instead of './astrill-setup-linux.deb'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
astrill:i386 : Depends: libgtk2.0-0:i386 but it is not going to be installed
Depends: gtk2-engines-pixbuf:i386 but it is not going to be installed
Obviously these are i386 packages, and I've tried to go down the rabbit hole of installing i386 dependencies from debian sources, but my understanding is that is not the correct way to do this.
How exactly do I include the necessary i386 dependencies so I can successfully install the contents of the deb file?
Context: Astrill is a VPN service that requires use of their proprietary software to be included in order to work in China. I'm not a huge fan of proprietary software, but it seems this methodology is the reason this is one of the only VPN services that actually works successfully in China.
Thanks, Rob
Don't install .deb directly unless you installed i386 multiarch. That's a bit tricky to do, so I don't recommand it.
If your software comes in the form of a tar, it would be easier.
For .deb, it's easier to extract their content in a some temp folder (using ar x astrill-setup-linux.deb) and check the tar exectracted for binary and lib stuff.
But that's not easy, so I recommend you download the "Linuw CLI 32bits" version of the package instead, and simply follow the chmod and al.. command.
If box86 is installed correctly (so with sudo make install follow by at least a reboot or sudo systemctl restart systemd-binfmt after the 1st installation), box86 will work transparently.
Note that I'm unsure this will work with that software, as this looks like a "driver", and box86 is not aimed for this kind of software.
I use chroot and qemu for full-pathed i386 installs. But making qemu and box86 live together on the same system might be a bit tricky to use.
My chroot is on another partition (raspbian stretch/debian stretch)
So step by step:
-
Make a stretch:arm/stretch:i386 chroot (you can try buster:arm/buster:i386 but wine might get a dbus error). --> see novaspirit guide to running x86 on raspberry pi do that. --> Qemu is not a competitor for box86: you don't have sound in chroot and qemu is painfully slow for games and demanding software. but Qemu can save your ass for full installs in chroot.
-
login in debian stretch chroot with "sudo chroot . /bin/su -l root"
-
install your deb and deps
-
Boot back to buster/box86
-
make a directory
-
symlink that directory or mount -B that directory to your debian:i386 chroot
-
run box86/your program with adequate BOX86_LD_LIBRARY_PATH.
-
Worked for VCMI-x86, program launches but does a segfault after intro (but that is another story)
I have no solution to make a chroot work on the same partition as your box86, actually qemu-static will destroy your systemd-binfmt installed box86. Tracks and solutions are welcome
@robkipping can this ticket be closed?
Hi everyone,
I'm trying to install a 32-bit x86 deb file on my raspberry pi (pi4, 8gb, 32-bit armhf raspberry pi os ). I compiled box86 alright (I believe), but when I try to apt install the deb file, this occurs:
pi@raspberrypi:~/Downloads $ sudo box86 apt install ./astrill-setup-linux.deb Box86 with Dynarec v0.1.7 670b1359 built on Dec 11 2020 18:46:08 Error: reading elf header of /usr/bin/apt, try to launch natively instead Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'astrill:i386' instead of './astrill-setup-linux.deb' Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: astrill:i386 : Depends: libgtk2.0-0:i386 but it is not going to be installed Depends: gtk2-engines-pixbuf:i386 but it is not going to be installedObviously these are i386 packages, and I've tried to go down the rabbit hole of installing i386 dependencies from debian sources, but my understanding is that is not the correct way to do this.
How exactly do I include the necessary i386 dependencies so I can successfully install the contents of the deb file?
Context: Astrill is a VPN service that requires use of their proprietary software to be included in order to work in China. I'm not a huge fan of proprietary software, but it seems this methodology is the reason this is one of the only VPN services that actually works successfully in China.
Thanks, Rob
I'm curious if you got it successfully running since I'm trying to install the same app now. I tried with the cli version but it doesn't really work after the installation. Below is the only error during installation:
FAILED TO INSTALL LSP