Notes de paramétrage de postes de travail, et autres vicissitudes ...

Accueil > Linux - Ubuntu > ubuntu - désactiver et bloquer snap

ubuntu - désactiver et bloquer snap

lundi 16 mai 2022, par Lucien-Henry

Problématique

Depuis la Ubuntu 22.04, on ne peut pas mettre à jour Firefox sans que celui-ci ne se réinstalle automatiquement via snap. Désinstaller snapd ne suffit pas car il y aura réinstallation à chaque mise à jour ... même si on déclare une autre source d’installation.

Solution

Ce ne sont encore pour le moment que des solutions de contournement, vu qu’il y aura toujours considération que les paquets devant être délivrés par snap, sont en attente de mise à jour. Mais au moins, il n’y aura plus de réinstalaltion et de mise à jour des paquets snaps dans le dos de l’utilisateur.

Remarque
Cas de l’erreur : "error : cannot list snaps : cannot communicate with server : Get "http://localhost/v2/snaps" : dial unix /run/snapd.socket : connect : no such file or directory"
En fait, c’est juste que le service snapd a été désactivé. On va devoir le relancer pour la bonne cause.
sudo systemctl start snapd

Une fois que snapd est relancé, on va lister les paquets de snap et les désinstaller un à un mais selon snap.

# snap list
Nom  Version  Révision  Suivi  Éditeur  Notes
core -  6818  latest/stable  canonical  ✓  cassé
pulsemixer -  23  latest/stable  georgefilipkin  cassé

On désinstalle un à un les paquets snap, excepté le core
# snap remove pulsemixer
pulsemixer supprimé.

Firefox bloqué par hunspell
Si en supprimant firefox via snap on rencontre une erreur du type :
$snap remove firefox
erreur : cannot perform the following tasks :
Supprimer les données du paquet Snap "firefox" (4173) (unlinkat /var/snap/firefox/common/host-hunspell/fr_MC.aff : read-only file system)
Supprimer le contenu du répertoire /var/snap/firefox/common/host-hunspell, ou simplement déconnecter firefox, même sous root, ne donnera qu’une erreur. Il faut au préalable démonter ce répertoire. Alors il faut déconnecter le sous-paquet concerné :

$snap list
Name    Version Rev   Tracking       Publisher Note
firefox 106.0-1 1969  latest/stable  mozilla   disabled
snapd   2.58.2  18357 latest/stable  canonical snapd
$umount /var/snap/firefox/common/host-hunspell
$snap disconnect firefox:host-hunspell
$snap remove firefox

Nettoyer /etc car cela poserait des problèmes à la désinstallation du paquet snapd :

ll /etc/systemd/system/snapd.mounts.target.wants
ll "/etc/systemd/system/var-snap-firefox-common-host\x2dhunspell.mount"
rm -ifr /etc/systemd/system/snapd.mounts.target.wants/

{{Remarque}}
Il se peut que l'on rencontre des dépendances dans les paquets snap ! Par exemple, bare dépend de gtk-common-themes
<code>#apt remove gtk-common-themes
apt remove bare
apt remove gnome-3-38-2004
# snap list
Nom  Version  Révision  Suivi  Éditeur  Notes
core  -  6818  latest/stable  canonical  ✓  cassé

On laisse le core.
Enfin on peut supprimer snapd, mais via l’option autoremove :
#apt autoremove snapd

Puis on va supprimer tout un tas de paquets carrément devenus chiants :
#apt autoremove

Les paquets suivants ont été complètement supprimés :
#apt autoremove snapd libpipewire-0.3-0 libpipewire-0.3-common libpipewire-0.3-modules libspa-0.2-modules pipewire pipewire-bin pipewire-media-session xdg-desktop-portal xdg-desktop-portal-gtk
Et pour bien nettoyer, revérifier ce qui va s’installer via :

#sudo apt-get -f install
sudo dpkg --configure -a

Affectation de la priorité la plus basse à snap dans les paquets (-1 ne suffira pas) :

#pluma /etc/apt/preferences.d/nosnap.pref
Package:        snapd
Pin:  release a=*
Pin-Priority:  -10

Dans le répertoire /etc/systemd/, supprimer tout lien vers un fichier snap.

Remarque
Ne plus avoir peur des messages issus de synaptic :
Failed to SetCandidateRelease for jammy
Idem, un apt dist-upgrade se contentera d’affirmer que les paquets "snapables" sont conservés et laissés en l’état ... Mais sans réinstallation de la version snap. Il faudra toujours "forcer" dans synaptic la bonne réinstallation de version.

Remarque
Idem, l’installation en ligne de commande d’un paquet relevant de snap posera problème, il faudra systématiquement faire son installation via synaptic en forçant la bonne version (qui ne sera pas celle snap).

# apt-get install firefox
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation :

Les paquets suivants contiennent des dépendances non satisfaites :
firefox : Pré-Dépend: snapd mais il n'est pas installable
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».

Dernières sources stables de Firefox

sudo add-apt-repository ppa:ubuntu-mozilla-security/ppa
sudo apt-get update
sudo apt-get upgrade

Liens

Ubuntu : Supprimer et bloquer les SNAPS
Linux – How to enable snaps support on Linux Mint 20
Ubuntu : snap verhindern
snap list hyper lent lancer snapd
Snap (gestionnaire de paquets)
Linux Mint dit « non » à l’installation automatique de snapd
How to have the latest version of Mozilla Firefox in our Ubuntu
Ubuntu : Supprimer et bloquer les SNAPS
Unlinkat /var/snap/firefox/common/host-hunspell/en_US.aff : read-only file system


Voir en ligne : Ubuntu : Supprimer et bloquer les SNAPS