Skip to content

Setup a 64bit system to run 32bit AppImages

Ismael Barros² edited this page Jan 24, 2021 · 1 revision

Some old AppImages are built for 32bit systems, so they may not be compatible with 64bit systems by default.

That can be easily fixed enabling "multilib" support and installing some 32bit libraries.

Automated way

This script automates installing the missing libraries. It has been tested on Ubuntu 12.04, 14.04, 16.04 and 20.04.

bash <(curl -s https://raw.githubusercontent.com/RazZziel/PortableLinuxGames/master/setup64bitSystemFor32bitAppImages)

Manual way

This have been tested on 64bit Ubuntu 12.04, 16.04 and 20.04.

First we must install basic 32bit support. The names of the packages may differ in your distro.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6-i386 libglib2.0-0:i386

libGL

AppImages don't include libGL.so.1, because it depends on the graphics driver you're using. For example, of you're using mesa3d drivers, you'll need to install this package:

  • Ubuntu 14.04
sudo apt-get install libgl1-mesa-glx-lts-quantal:i386
  • Other Ubuntu versions
sudo apt-get install libgl1-mesa-glx:i386

libfuse2

Most versions of Ubuntu provide a 32bit libfuse2 package, that can be easily installed with this command:

sudo apt-get install libfuse2:i386

Hoever, some Ubuntu versions don't provide a 32bit fuse library for 64bit systems, so we'll have to install our own. We'll download a 32bit libfuse package and extracting the library to the /lib32 directory.

pushd /tmp/
wget http://archive.ubuntu.com/ubuntu/pool/main/f/fuse/libfuse2_2.9.7-1ubuntu1_i386.deb
dpkg -x libfuse2_2.9.7-1ubuntu1_i386.deb .
mkdir -p /lib32/
sudo install -o root lib/i386-linux-gnu/libfuse.so.2.9.7 /lib32/libfuse.so.2
rm lib/libfuse.so.2.9.7 data.tar.gz libfuse2_2.9.7-1ubuntu1_i386.deb
rmdir lib
sudo ldconfig
popd

Other dependencies

Some packages don't include libpulse, because it's a runtime dependency, so they will run but they will have no sound. This is how to install 32bit libpulse support.

sudo apt-get install libpulse0:i386 libvorbisfile3:i386

Some packages include all needed libraries to run a game (usually they are marked as -archlinux), but some will only include those commonly found in most distros. Here for example we'll install the libraries needed to run "McDROID DEMO".

sudo apt-get install libglu1-mesa:i386 libxcursor1:i386