43

I've been using Ubuntu for 12 years, and snap in the recent releases of Ubuntu is really a disgrace. It creates lots of problems. After an upgrade, Chromium does not start due to the following error:

chromium_chromium.desktop[122932]: snap-confine has elevated permissions and is not confined but should be. Refusing to continue to avoid permission escalation attacks: Operation not permitted

If a package changes configuration in a new version, it's its responsibility to make it work. Now, I have to reconfigure it after each start by

sudo apparmor_parser -r /etc/apparmor.d/*snap-confine*

How can I fully uninstall snap and re-install its packages by regular apt?

I don't have many packages handled by snap.

snap list
Name               Version             Rev   Tracking         Publisher   Notes
chromium           85.0.4183.121       1328  latest/stable    canonical✓  -
core18             20200724            1885  latest/stable    canonical✓  base
gnome-3-34-1804    0+git.3556cb3       60    latest/stable    canonical✓  -
gtk-common-themes  0.1-36-gc75f853     1506  latest/stable    canonical✓  -
snap-store         3.36.0-80-g208fd61  467   latest/stable/…  canonical✓  -
snapd              2.46.1              9279  latest/stable    canonical✓  snapd

My question is how to safely remove snap. From the snap list, I see gnome depends on snap.

Eduardo
  • 1,183
Googlebot
  • 1,867

3 Answers3

64

In Ubuntu 20.04 LTS (but it works also in the following releases till 23.10, that is the current one), I removed snapd following these steps:

# stop snapd services
sudo systemctl stop snapd && sudo systemctl disable snapd

Workaround for https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1998710

This command is needed starting from Ubuntu 22.10

Without it an error is returned when running the snapd purge command

In that case you need to reinstall snapd to cleanly remove it in a second attempt

sudo snap remove firefox

purge snapd

sudo apt purge snapd

remove no longer needed folders

rm -rf ~/snap sudo rm -rf /snap /var/snap /var/lib/snapd /var/cache/snapd /usr/lib/snapd /root/snap

Then, to avoid that other applications may reinstall it (chromium-browser is an example of application that restores snapd even if installed via apt) you can create a file no-snap.pref by issuing:

sudo -H gedit /etc/apt/preferences.d/no-snap.pref

and then copying the following content in it:

# To install snapd, specify its version with 'apt install snapd=VERSION'
# where VERSION is the version of the snapd package you want to install.
Package: snapd
Pin: release a=*
Pin-Priority: -10

Two of the most critical applications in Ubuntu system, Software and Firefox, will be removed after these steps. In the future Ubuntu 24.10, also the Common Unix Printing System (CUPS) will be a snap package. Before running these commands, ask yourself if you really want to remove snapd, as I did.

Considering that thare are ways to install Firefox as a deb, make sure you take backups of bookmarks and other Firefox settings, if you are using it as your default browser.

Lorenz Keel
  • 9,511
10

Full credit to Don Prince for a comprehensive and effective solution from this link

I recommend you run the commands individually. Some you won't need, and for some you may need one or two extra lines.

Run the exploratory informational commands listed in the comments to determine the specific situation in your install.

Also installs Deb packaged last known Chromium and pins it to prevent snapd taking over again in future. Awesome! Thanks Don!

#!/bin/bash

probably best to manually type this commands individually checking for problems

snap list | grep -v "^Name" | awk {'print "sudo snap remove " $1'}

sudo snap remove snap-store sudo snap remove gtk-common-themes sudo snap remove gnome-3-28-1804 sudo snap remove gnome-3-34-1804 sudo snap remove core18 sudo snap remove snapd snap list # expect: No snaps are installed yet. Try 'snap install hello-world'.

sudo umount /run/snap/ns

sudo systemctl disable snapd.service sudo systemctl disable snapd.socket sudo systemctl disable snapd.seeded.service sudo systemctl disable snapd.autoimport.service sudo systemctl disable snapd.apparmor.service

sudo rm -rf /etc/apparmor.d/usr.lib.snapd.snap-confine.real

sudo systemctl start apparmor.service

df | grep snap | awk {'print "sudo umount " $6'}

sudo umount /snap/chromium/1424 sudo umount /snap/gtk-common-themes/1514 sudo umount /snap/gnome-3-28-1804/145 sudo umount /snap/core18/1944 sudo umount /snap/snapd/10492 sudo umount /var/snap

sudo apt purge snapd

find / -type d -iname 'snap'

(I left the kernel entries well alone)

rm -rf ~/snap sudo rm -rf /snap /var/snap /var/lib/snapd /var/cache/snapd /usr/lib/snapd sudo rm -rf /root/snap /root/snap/snap-store /usr/share/doc/libsnapd-glib1 /usr/share/doc/gir1.2-snapd-1

cat <<EOF | sudo tee /etc/apt/preferences.d/snapd Package: snapd Pin: origin * Pin-Priority: -1 EOF

cat <<EOF | sudo tee /etc/apt/preferences.d/pin-xalt7x-chromium-deb-vaapi Package: * Pin: release o=LP-PPA-xalt7x-chromium-deb-vaapi Pin-Priority: 1337 EOF

sudo add-apt-repository ppa:xalt7x/chromium-deb-vaapi

sudo apt update sudo apt-get install chromium-browser

Pablo Bianchi
  • 17,371
NeilG
  • 244
5

I agree with you about snaps.

I have completely removed snaps from my system by doing this:

sudo apt-get purge snapd
rm -rf ~/snap                                      
sudo rm -rf /snap                                  
sudo rm -rf /var/snap                              
sudo rm -rf /var/lib/snapd 

Now the system works well Although I had to substitute snap programs with their APT or .deb file versions when available. Unfortunately in my case I've lost an application that I need but that's the price I had to pay, but I gained some disk space and my boot time is a little shorter.

gnome is still installed and works regularly as before

gnome shell version shown in terminal

Zanna
  • 72,312
pat
  • 439