Skip to content

[Bug Report] AppImage broken on modern distros: dlopen(): error loading libfuse.so.2 #3434

@phroi

Description

@phroi

Topic Type

Other

Detail of the issue

Hello folks at App5,

I just noticed that Neuron’s AppImage depends on libfuse2: many distributions now ship libfuse3 by default and may not install libfuse2 on a fresh system. This means that Neuron will not run out-of-the-box on fresh installs of recent mainstream distros such as Ubuntu, Fedora, Arch, Debian... That's why most AppImage maintainers are rebuilding images to bundle a libfuse3 runtime so they run without requiring host libfuse2.

That said, my personal suggestion would be to distribute Neuron via Flatpak, reason being:

Flatpak is slowly but steadily becoming the de-facto standard for distribuiting Apps on Linux, especially thanks ot the user-accessible tooling around it: discoverability, one-click install, updateability, easiness of restricting permissions...

On Flatpak these bases are well covered, we have user-accessible tools like: Bazaar, Flatseal, Warehouse ...

On AppImages we:

  1. Get a binary
  2. Verify the hash (we all do this, right?)
  3. chmod +x ...
  4. Double click
  5. Hope for the best
  6. (Optional side quest) Sometimes Gnome Nautilus strangely try to decompress it, later on you realize that you just forgot chmod, whoops 🤣🤣🤣

Just to make a comparison, on modern Linux distro:

  • 1 click for an hypothetical Neuron Flatpak installation on most distro (3 steps if it's Ubuntu 🤣)
  • 4 steps for an hypothetical Neuron libfuse3 installation (terminal still needed to check the hash)
  • The following steps for the current Neuron libfuse2 installation on a fresh Ubuntu Distrobox:
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 24.04.1 LTS
Release:	24.04
Codename:	noble
$ wget https://github.com/nervosnetwork/neuron/releases/download/v0.202.1/Neuron-v0.202.1-x86_64.AppImage
...
$ sha256sum ~/Neuron-v0.202.1-x86_64.AppImage 
f3b5d50f33bf5d7ad15d67ef3f1024f668fe017d95a680c664abfff9f920dbdc  /var/home/user/Neuron-v0.202.1-x86_64.AppImage
$ chmod +x Neuron-v0.202.1-x86_64.AppImage
$ ./Neuron-v0.202.1-x86_64.AppImage
dlopen(): error loading libfuse.so.2

AppImages require FUSE to run. 
You might still be able to extract the contents of this AppImage 
if you run it with the --appimage-extract option. 
See https://github.com/AppImage/AppImageKit/wiki/FUSE 
for more information
$ sudo apt install libfuse2t64
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package libfuse2t64
$ sudo apt update
...
$ sudo apt upgrade
...
$ sudo apt install libfuse2t64
...
$ ./Neuron-v0.202.1-x86_64.AppImage
/tmp/.mount_NeuronCWaOt0/neuron-wallet: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
$ sudo apt install libnss3
...
$ ./Neuron-v0.202.1-x86_64.AppImage
/tmp/.mount_NeuronMuTSYb/neuron-wallet: error while loading shared libraries: libasound.so.2: cannot open shared object file: No such file or directory
$ sudo apt install libasound2t64
...
$ ./Neuron-v0.202.1-x86_64.AppImage

Great Success!

Thank you for your hard work,
Phroi

bundled-ckb.log

bundled-ckb-light-mainnet.log

main.log

status.log

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions