Skip to content

Instantly share code, notes, and snippets.

@avoidik
Created January 8, 2026 18:17
Show Gist options
  • Select an option

  • Save avoidik/7b56d33bac207fce8bb3c89112e6c7b0 to your computer and use it in GitHub Desktop.

Select an option

Save avoidik/7b56d33bac207fce8bb3c89112e6c7b0 to your computer and use it in GitHub Desktop.
Get rid of snap in Ubuntu
#!/bin/bash
# Remove all snap packages and snapd from Ubuntu
# Add your user to sudoers list first
set -e
echo "Removing all snap packages..."
# Get non-base snaps first
non_base_snaps=$(sudo snap list --all | tail -n +2 | grep -v "base" | grep -v "snapd" | awk '{print $1 " " $3;}')
# Remove non-base snaps
while IFS= read -r line; do
[ -z "$line" ] && continue
name=$(echo "$line" | awk '{print $1;}')
rev=$(echo "$line" | awk '{print $2;}')
echo "Removing $name (rev $rev)..."
sudo snap remove "$name" --revision="$rev" --purge
done <<< "$non_base_snaps"
# Now remove base snaps
base_snaps=$(sudo snap list --all | tail -n +2 | grep "base" | awk '{print $1 " " $3}')
while IFS= read -r line; do
[ -z "$line" ] && continue
name=$(echo "$line" | awk '{print $1;}')
rev=$(echo "$line" | awk '{print $2;}')
echo "Removing $name (rev $rev)..."
sudo snap remove "$name" --revision="$rev" --purge
done <<< "$base_snaps"
# Remove snapd snap last
echo "Removing snapd snap..."
sudo snap remove snapd --purge
echo "Removing snapd package..."
sudo apt purge -y snapd
echo "Removing snap directories..."
sudo rm -rf /snap /var/snap /var/lib/snapd /var/cache/snapd /usr/lib/snapd ~/snap
echo "Preventing snapd reinstallation..."
sudo tee /etc/apt/preferences.d/nosnap.pref > /dev/null <<EOF
Package: snapd
Pin: release a=*
Pin-Priority: -1
EOF
echo "Updating package lists..."
sudo apt update
echo "Snap removal complete."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment