Ubuntu tout cassé après avoir voulu lancer une application .AppImage ?

Il y a quelques mois, il m'est arrivé une petite mésaventure après avoir lancé une application AppImage. Sur le coup je n'avais pas jugé utile d'en faire un article, car le problème était dû à un manque d'attention de ma part. Mais il y a quelques jours un collègue s'est retrouvé dans la même situation, et ça m'a donc décidé à documenter un peu tout ça... 🙂️

L'accident

Pour moi tout a commencé quand j'ai voulu utiliser le lecteur audio Sonixd, qui est distribué sous la forme d'un fichier .AppImage. Quand j'ai essayé de le lancer avec les commandes suivantes :

$ chmod +x Sonixd-0.15.5-linux-x86_64.AppImage
$ ./Sonixd-0.15.5-linux-x86_64.AppImage

... je me suis retrouvé face à cette erreur:

dlopen(): error loading libfuse.so.2

AppImages require FUSE to run.

Une rapide recherche sur les zinternets m'a fait tomber sur un poste StackOverflow indiquant la solution :

For Ubuntu < 22.04 use:

sudo apt-get install fuse libfuse2

For Ubuntu >= 22.04 use:

sudo apt install libfuse2

Comme j'étais un peu pressé, j'ai recopié les paquets de la première commande sans trop lire le message alors que j'étais sous Ubuntu 24.04. Ça n'aurait pas été bien grave si au moins j'avais lu les avertissements d'apt... :

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Note : sélection de « libfuse2t64 » au lieu de « libfuse2 »
libfuse2t64 est déjà la version la plus récente (2.9.9-8.1build1).
Les paquets suivants seront ENLEVÉS :
  flatpak flatpak-builder fuse3 gnome-remote-desktop gnome-session gnome-shell-extension-desktop-icons-ng
  gnome-snapshot gnome-software-plugin-flatpak gnome-sushi guestfish guestfs-tools guestmount gvfs-fuse
  libguestfs-hfsplus libguestfs-perl libguestfs-reiserfs libguestfs-tools libguestfs-xfs libguestfs0t64 nautilus
  ntfs-3g shotwell testdisk ubuntu-desktop ubuntu-desktop-minimal ubuntu-session virt-p2v xdg-desktop-portal
  xdg-desktop-portal-gnome xdg-desktop-portal-gtk
Les NOUVEAUX paquets suivants seront installés :
  fuse libfuse2
0 mis à jour, 2 nouvellement installés, 30 à enlever et 4 non mis à jour.
Il est nécessaire de prendre 27,6 ko dans les archives.
Après cette opération, 64,2 Mo d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n]

... mais je suis allé trop vite et j'ai validé sans lire.

Pourtant apt indique clairement qu'une trentaine de paquets ALLAIENT ÊTRE SUPPRIMÉS. Et puis en y regardant de plus près, il s'agit quand même de paquets plutôt importants pour le bon fonctionnement de l'environnement de bureau GNOME. 😅️

Pourquoi ça se produit ?

FUSE (Filesystem in UserSpecE) permet à un utilisateur sans privilèges de manipuler et de monter des systèmes de fichiers. Le format AppImage s'en sert car il embarque tout le nécessaire pour lancer une application (exécutables, bibliothèques, ressources, etc.) sous la forme d'une image disque qui sera montée à l'aide de FUSE pour pouvoir lancer le logiciel qu'il contient.

Le paquet "fuse" installe la version 2 de FUSE, qui ne peut pas être installée en même temps que la version 3 qui est fournie quant à elle par le paquet "fuse3". Comme ces versions sont incompatibles entre elles, installer "fuse" provoque la désinstallation de "fuse3"... sauf qu'une partie importante de l'environnement GNOME en dépend et se retrouve donc désinstallée en même temps...

Maintenant que c'est tout cassé, comment on répare ?

Dans mon cas, je me suis rapidement aperçu de la boulette quand j'ai cherché à lancer Nautilus, mon navigateur de fichier, et que j'ai vu que le logiciel n'était plus installé. Heureusement pour moi, j'utilise Btrfs avec Timeshift (j'en avait parlé dans un article : Guide d'installation d'Ubuntu dans une partition Btrfs chiffrée), j'ai donc pu simplement restaurer mon système depuis la dernière snapshot sans me poser trop de questions...

Mais pour mon collègue qui n'utilise pas Btrfs il a fallu trouver autre chose, mais rassurez-vous, rien de bien compliqué. 😉️

Si vous êtes toujours connectés à votre session et que vous avez accès à un terminal, il suffit de taper la commande suivante pour réinstaller tous les paquets nécessaires au bon fonctionnement de votre environnement graphique :

$ sudo apt install ubuntu-desktop

Si vous avez verrouillé votre session et que vous vous retrouvez coincés, ou si vous avez redémarré et que vous faites face aux journaux de démarrage sans jamais arriver sur l'écran de connexion, pressez la combinaison de touche "Ctrl+Alt+F2" pour accéder à une console. Il est possible que dans votre cas il faille utiliser une autre console, essayer les combinaisons "Ctrl+Alt+F3", "Ctrl+Alt+F4",... jusqu'à tomber sur une console sur laquelle vous pouvez vous connecter. Ça devrait ressembler à quelque chose comme ça en blanc sur fond noir :

Ubuntu 24.04.1 LTS nomdelamachine tty3

nomdelamachine login:

Ici vous pouvez entrer votre nom d'utilisateur, puis appuyer sur Entrée puis entrer votre mot de passe et valider à nouveau avec Entrée. Vous devriez à présent être en mesure d'entrer la commande pour réinstaller le paquet "ubuntu-desktop".

Note

NOTE¹ : Si jamais vous utilisiez une variante d'Ubuntu, comme Kubuntu ou Xubuntu, il faudra installer le paquet correspondant :

  • "ubuntu-desktop" pour Ubuntu (environnement de bureau GNOME)
  • "kubuntu-desktop" pour Kubuntu (environnement de bureau KDE)
  • "edubuntu-desktop" pour Edubuntu (une variante d'Ubuntu pour l'éducation)
  • "xubuntu-desktop" pour Xubuntu (environnement de bureau XFCE)
  • "lubuntu-desktop" pour Lubuntu (environnement de bureau LXDE)

Note

NOTE² : En dehors de l'environnement de bureau, d'autres logiciels sont dépendant du paquet "fuse3" et se seront également fait désinstaller dans la foulée. C'est notamment le cas de Flatpak, qu'il vous faudra aussi réinstaller si vous l'utilisiez.

Conclusion

Contrairement à ce que le titre de l'article pourrait laisser penser, AppImage n'est pas du tout en cause ici ; le problème est surtout causé par un manque d'attention (ou de compréhension) de l'utilisateur.

Quand on est pressé, il est urgent de prendre son temps si on ne veut pas en perdre !

Il faut prendre le temps de bien lire (et comprendre) la réponse StackOverflow avant d'installer bêtement les premiers paquets qu'on y voit écrits. Et puis surtout, il faut bien faire attention à ce qu'apt (ou toute autre application) nous indique qu'elle va faire avant de valider une opération ! 😅️

Quoi qu'il en soit, ça arrive à tout le monde de se planter, l'essentiel c'est d'être capable de réparer ses erreurs, et j'espère que cet article pourra y contribuer. 😄️

À bientôt pour un nouvel article sur un thème plus léger, puisque normalement ça devrait parler de musique. 😉️