Created
January 8, 2026 18:17
-
-
Save avoidik/7b56d33bac207fce8bb3c89112e6c7b0 to your computer and use it in GitHub Desktop.
Get rid of snap in Ubuntu
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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