How do I remove all snaps and snapd, preferably with a single command [duplicate]

I'm currently using a Ubuntu 20.04 machine with a small root volume. The default snap setup occupies ~1G space, though with only a few packages. And when I tried to remove core from snap I got the following error.

# snap remove core18
error: cannot remove "core18": snap "core18" is not removable: snap is being used by snaps gnome-3-34-1804, gtk-common-themes and snap-store.

I understand I can work around the issue by manually remove the dependants first, but is there a one-liner solution that manages the dependencies automatically so that all snaps and snapd can be removed in one go?


It's not a one-liner, but...

sudo snap remove $(snap list | awk '!/^Name|^core/ {print $1}')
sudo apt remove --purge -y snapd gnome-software-plugin-snap

I should add that removing snapd and gnome-software-plugin-snap1 remove also ubuntu-software, the Ubuntu software store. This can be fixed by

sudo at install gnome-software

however the icons do not all come back...


A one-liner this is not but, if you would like to completely remove everything related to snaps on your machine, follow these steps:

  1. Open the Terminal

  2. List all the snaps installed on your system with snap list. You will see something like this:

    Name                  Version                     Rev    Tracking         Publisher         Notes
    chromium              87.0.4280.141               1444   latest/stable    canonical✓        -
    core                  16-2.48.2                   10583  latest/stable    canonical✓        core
    core18                20201210                    1944   latest/stable    canonical✓        base
    emote                 1.3.0                       12     latest/stable    tom-james-watson  -
    gnome-3-28-1804       3.28.0-19-g98f9e67.98f9e67  145    latest/stable    canonical✓        -
    gnome-3-34-1804       0+git.3556cb3               66     latest/stable    canonical✓        -
    gnome-system-monitor  3.36.0-12-g35f88a56d7       148    latest/stable/…  canonical✓        -
    gtk-common-themes     0.1-50-gf7627e4             1514   latest/stable/…  canonical✓        -
    snap-store            3.38.0-59-g494f078          518    latest/stable/…  canonical✓        -
    spotify               1.1.46.916.g416cacf1        43     latest/stable    spotify✓          -
    vlc                   3.0.11                      1700   latest/stable    videolan✓         -
    
  3. Remove each snap that you may have chosen to install using sudo snap remove <package>:

    sudo snap remove chromium
    sudo snap remove emote
    sudo snap remove spotify
    sudo snap remove vlc
    
  4. Remove the core snaps in this order (your list may be slightly different):

    sudo snap remove snap-store
    sudo snap remove gtk-common-themes
    sudo snap remove gnome-system-monitor
    sudo snap remove gnome-3-34-1804
    sudo snap remove gnome-3-28-1804
    sudo snap remove core18
    sudo snap remove snapd
    
  5. Verify there are no more snaps installed with snap list. You should see a message like this:

    No snaps are installed yet. Try 'snap install hello-world'.
    
  6. Unmount the snap mount points with sudo umount /snap/core/{point}, replacing {point} with the actual mount point. You can find the complete list using df -h.

Note: In Ubuntu 20.10 (and newer) you only need to do this: sudo umount /var/snap.

  1. Remove snapd from your system with sudo apt purge snapd

  2. Remove any snap-related directories that might remain:

    rm -rf ~/snap
    sudo rm -rf /snap
    sudo rm -rf /var/snap
    sudo rm -rf /var/lib/snapd
    

Your system will now be devoid of snaps.