Ubuntu – How to uninstall snap

20.04apparmorchromiumsnap

I use Ubuntu for 12 years, and snap in the recent releases of Ubuntu is really disgrace. It creates lots of problems. After an upgrade, Chromium does not start with the 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 the 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 have not 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.

Best Answer

In Ubuntu 20.04 LTS and Ubuntu 20.10, I removed snapd following this steps:

# stop snapd services
sudo systemctl stop snapd && sudo systemctl disable snapd
# 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

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
Related Question