Skip to content
BobSynfig edited this page May 5, 2022 · 46 revisions

AppImages require FUSE version 2 to run. Filesystem in Userspace (FUSE) is a system that lets non-root users mount filesystems.

Install FUSE

Many distributions have a working FUSE setup out-of-the-box. However if it is not working for you, you may need to install and configure FUSE manually.

For example, on Ubuntu (>= 22.04):

Warning: Do not install the fuse package as of 22.04 or you may break your system

sudo add-apt-repository universe
sudo apt install libfuse2

For example, on Ubuntu (<= 21.10):

sudo apt install fuse libfuse2
sudo modprobe fuse
sudo groupadd fuse

user="$(whoami)"
sudo usermod -a -G fuse $user

For example, on openSUSE:

sudo zypper install fuse libfuse2

In order to use fusermount on OpenSUSE with the default (?) "secure" file permission settings (see /etc/permissions.secure), your login needs to be part of the trusted group. To add yourself, run

sudo usermod -a -G trusted `whoami`

Then log out and log in for the change to take effect.

For example, on CentOS/RHEL:

yum --enablerepo=epel -y install fuse-sshfs # install from EPEL
user="$(whoami)"
usermod -a -G fuse "$user" 

For example, on Armbian 64-bit systems (e.g., for the Pine64) you need to install 32-bit libfuse2 in order to run 32-bit AppImages such as the MuseScore one:

sudo apt install libfuse2:armhf

For example, on Clear Linux OS:

This may be a bug, please see https://github.com/clearlinux/distribution/issues/273

sudo su
mkdir -p /etc/modules-load.d/
echo "fuse" > /etc/modules-load.d/fuse.conf
reboot

For example, on Arch Linux:

If you are seeing "fusermount: mount failed: Operation not permitted"

sudo chmod u+s `which fusermount`

Chrome OS, Chromium OS, Crostini:

FUSE is not operational out of the box, but installation is simple after version 73:

sudo apt install fuse

check https://bugs.chromium.org/p/chromium/issues/detail?id=841787 for details

Fallback

If you don't want to install FUSE, you can either mount or extract the AppImage.

type-2 AppImage

To extract the contents of the AppImage, simply run the AppImage with --appimage-extract.

type-1 AppImage

If the above does not work, you may still have an older type-1 AppImage. To mount the AppImage and run the application, simply run

sudo mount -o loop Some.AppImage /mnt
/mnt/AppRun

A type-1 AppImage is an ISO, so

sudo apt install libarchive-tools # Or any other method to get `bsdtar`
mkdir AppDir
cd AppDir
bsdtar xfp /home/me/Downloads/Some.AppImage
./AppRun

also works.

Docker

When running an AppImage from a Docker container you will get the following error:

fuse: failed to open /dev/fuse: Operation not permitted
Could not mount AppImage
Please see https://github.com/probonopd/AppImageKit/wiki/FUSE

You'll often hear "oh, just add these arguments to docker run --cap-add SYS_ADMIN --cap-add MKNOD --device /dev/fuse:mrw and it'll work", but that is considered to be insecure.

Instead, just use the --appimage-extract-and-run parameter to the AppImage in your build script:

[...]
./appimagetool-*.AppImage --appimage-extract-and-run ...
[...]

You can also make appimagetool do this using export APPIMAGE_EXTRACT_AND_RUN=1

Note: appimagetool-*.AppImage can be extracted starting with release version 9

If you want to decide whether to use the AppImage directly or extracted depending on whether you're in a container or not, for example in a build script, you can combine this with some detection code.

More troubleshooting information

https://docs.appimage.org/user-guide/troubleshooting/fuse.html