Linux Mint keeps Snap opt-in instead of enabling it by default. Ubuntu-based Mint 22.x and 21.x ship with Flatpak available, while /etc/apt/preferences.d/nosnap.pref blocks snapd from becoming an APT install candidate until you deliberately move or remove that pin.
To install Snap on Linux Mint, enable the package first, install snapd, verify the socket, then test a snap package. The same workflow also gives you a clean rollback path if you want to remove Snap later and restore Mint’s default no-Snap behavior.
Install Snap on Linux Mint
Refresh package lists before changing the Snap pin. Apply pending upgrades if APT proposes normal package updates you are ready to install.
sudo apt update
sudo apt upgrade
These commands use
sudofor administrative access. If your account does not have sudo rights yet, follow how to create and add users to sudoers on Linux Mint first.
Check Linux Mint’s Snap Block
Mint’s no-Snap pin prevents snapd from being selected by APT. Confirm the current state before editing the pin file:
apt-cache policy snapd | sed -n '1,6p'
Relevant output on Linux Mint 22.3 shows the package visible but blocked:
snapd:
Installed: (none)
Candidate: (none)
Version table:
2.75.2+ubuntu24.04 -10
500 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
The Candidate: (none) line and -10 priority are the useful checks. Linux Mint 21.x shows the Ubuntu 22.04 package source instead, but the block behaves the same way.
Enable Snap by Moving nosnap.pref
Linux Mint documents the default Snap restriction in its Snap Store notes, and Canonical’s Linux Mint Snap instructions use the same move-or-remove requirement. Rename the file instead of deleting it so the original policy is easy to restore:
sudo mv /etc/apt/preferences.d/nosnap.pref /etc/apt/preferences.d/nosnap.pref.backup
If the policy check already shows a normal Candidate value, the no-Snap pin has already been moved or removed. Skip the move command and continue with the APT refresh.
Refresh APT after moving the pin file:
sudo apt update
Confirm that snapd now has a normal candidate:
apt-cache policy snapd | sed -n '1,6p'
Relevant output on Linux Mint 22.3 includes:
snapd:
Installed: (none)
Candidate: 2.75.2+ubuntu24.04
Version table:
2.75.2+ubuntu24.04 500
500 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
Linux Mint 21.x uses the Ubuntu 22.04 package string, such as 2.75.2+ubuntu22.04, from the jammy-updates repository.
Install snapd on Linux Mint
Install the Snap service and command-line tools with APT:
sudo apt install snapd
The package enables snapd.socket during installation, so a normal Linux Mint desktop does not need a separate systemctl enable command on the first install path.
Check the installed Snap version and distro line:
snap version
Example output on Linux Mint 22.3:
snap 2.75.2+ubuntu24.04 snapd 2.75.2+ubuntu24.04 series 16 linuxmint 22.3 kernel 6.17.0-29-generic architecture amd64
Linux Mint 21.3 reports the Ubuntu 22.04 package branch and a linuxmint 21.3 distro line.
Socket activation is the readiness check that matters most:
systemctl is-enabled snapd.socket
systemctl is-active snapd.socket
Expected output:
enabled active
Test Snap with hello-world
Install Canonical’s small test snap to prove the store connection, automatic base-snap setup, and runtime path. A separate manual sudo snap install core step is not required on current Mint 22.x or 21.x systems.
sudo snap install hello-world
snap run hello-world
Relevant output includes:
hello-world 6.4 from Canonical** installed Hello World!
Use snap run for immediate terminal tests because it does not depend on your current shell seeing /snap/bin. Log out and back in before relying on bare snap app commands or desktop menu launchers.
Automate Snap Setup on Linux Mint
Use this optional Bash helper when you want the same setup path in one repeatable run. It checks that the system is Linux Mint 22.x or 21.x, backs up Mint’s no-Snap pin without overwriting an existing backup, installs snapd, verifies the socket, and runs the hello-world snap test.
Read the script before running it. The helper uses
sudo, runsapt-get install -y snapd, and leaves Snap enabled until you follow the removal section later.
Create the temporary helper in your current terminal directory:
script="install-snap-linux-mint.sh"
if [ -e "$script" ]; then
printf 'Refusing to overwrite %s\n' "$script" >&2
false
else
cat > "$script" <<'SNAP_SCRIPT'
#!/usr/bin/env bash
set -Eeuo pipefail
install_store="${INSTALL_SNAP_STORE:-0}"
nosnap_file="/etc/apt/preferences.d/nosnap.pref"
backup_file="${nosnap_file}.backup"
phase() {
printf '\n==> %s\n' "$1"
}
require_command() {
if ! command -v "$1" >/dev/null 2>&1; then
printf 'Missing required command: %s\n' "$1" >&2
exit 1
fi
}
phase "Check required commands"
for command_name in apt-cache apt-get awk grep systemctl sudo; do
require_command "$command_name"
done
case "$install_store" in
0|false|no)
install_store=0
;;
1|true|yes)
install_store=1
;;
*)
printf 'Set INSTALL_SNAP_STORE to 1 or 0, not %s\n' "$install_store" >&2
exit 1
;;
esac
phase "Check Linux Mint release"
# shellcheck source=/dev/null
. /etc/os-release
if [ "${ID:-}" != "linuxmint" ]; then
printf 'This helper is intended for Linux Mint, not %s.\n' "${ID:-unknown}" >&2
exit 1
fi
case "${VERSION_ID%%.*}" in
22|21)
;;
*)
printf 'This helper is validated for Linux Mint 22.x and 21.x, not %s.\n' "${VERSION_ID:-unknown}" >&2
exit 1
;;
esac
printf 'Detected %s %s (%s)\n' "${NAME:-Linux Mint}" "${VERSION_ID:-unknown}" "${VERSION_CODENAME:-unknown}"
phase "Check sudo access"
if sudo -n true 2>/dev/null; then
printf 'sudo credentials are available.\n'
else
printf 'sudo may prompt for your password during the next privileged command.\n'
fi
phase "Enable snapd in APT"
if [ -f "$nosnap_file" ]; then
if [ -e "$backup_file" ]; then
printf 'Refusing to overwrite existing backup: %s\n' "$backup_file" >&2
exit 1
fi
sudo mv "$nosnap_file" "$backup_file"
printf 'Moved %s to %s\n' "$nosnap_file" "$backup_file"
elif [ -f "$backup_file" ]; then
printf 'Snap pin already moved; backup exists at %s\n' "$backup_file"
else
printf 'No Mint no-Snap pin found; continuing.\n'
fi
phase "Refresh APT and check snapd"
sudo apt-get update
candidate="$(apt-cache policy snapd | awk '/Candidate:/ {candidate=$2} END {print candidate}')"
printf 'snapd candidate: %s\n' "${candidate:-unknown}"
if [ -z "${candidate:-}" ] || [ "$candidate" = "(none)" ]; then
printf 'snapd still has no install candidate. Check APT output and the no-Snap pin state.\n' >&2
exit 1
fi
phase "Install snapd"
sudo apt-get install -y snapd
phase "Start and verify snapd.socket"
sudo systemctl enable --now snapd.socket
systemctl is-enabled snapd.socket
systemctl is-active snapd.socket
phase "Verify Snap command"
for _attempt in {1..12}; do
if command -v snap >/dev/null 2>&1 && snap version >/dev/null 2>&1; then
break
fi
sleep 5
done
if ! command -v snap >/dev/null 2>&1; then
printf 'snap command is still unavailable after installing snapd.\n' >&2
exit 1
fi
snap version
phase "Test hello-world snap"
if snap list hello-world >/dev/null 2>&1; then
printf 'hello-world is already installed; running it now.\n'
else
sudo snap install hello-world
fi
snap run hello-world
if [ "$install_store" = "1" ]; then
phase "Install optional Snap Store GUI"
if snap list snap-store >/dev/null 2>&1; then
printf 'snap-store is already installed.\n'
else
sudo snap install snap-store
fi
snap list snap-store
printf 'Launch the GUI from the menu, or run: snap run snap-store\n'
fi
phase "Snap setup complete"
printf 'Mint no-Snap backup: %s\n' "$backup_file"
printf 'Use the removal section to purge snapd and restore Mint defaults later.\n'
SNAP_SCRIPT
chmod 700 "$script"
fi
Run the helper for the command-line Snap setup and hello-world test:
./install-snap-linux-mint.sh
Use this run command instead when you also want the optional graphical Snap Store package installed:
INSTALL_SNAP_STORE=1 ./install-snap-linux-mint.sh
Relevant output includes the phase labels, the detected Mint release, the enabled socket state, and the Snap runtime test:
==> Check Linux Mint release Detected Linux Mint 22.3 (zena) ==> Start and verify snapd.socket enabled active ==> Test hello-world snap Hello World! ==> Snap setup complete
If you rerun the helper, it keeps the existing nosnap.pref.backup file, rechecks snapd, and runs hello-world again instead of reinstalling it. Add INSTALL_SNAP_STORE=1 on a later run if you decide to install the graphical store afterward.
Remove the temporary helper after the run succeeds:
rm -f install-snap-linux-mint.sh
Install Applications from the Snap Store on Linux Mint
After snapd is working, Snap packages can be installed from Canonical’s Snap Store alongside APT packages and Mint’s default Flatpak update workflow. Use Snap when the package you need is maintained there first or when the Snap build is the only current Linux package for your app.
Search for packages by name or keyword:
snap find <search-term>
Inspect a package before installing it. Publisher markers identify the Snap Store account, not automatic upstream endorsement for every project:
snap info <package-name>
Install a normal strict-confinement snap with:
sudo snap install <package-name>
Use --classic only when snap info or the Snapcraft package page says the package requires classic confinement. Classic snaps have broader access to the host filesystem than strict snaps.
sudo snap install <package-name> --classic
For app-specific packaging tradeoffs, compare the Snap path with the dedicated Linux Mint guides for installing Telegram on Linux Mint and installing VS Code on Linux Mint.
Install the Snap Store GUI on Linux Mint
The graphical Snap Store is optional. Check the current package metadata first because the visible app branding can appear as App Center, Snap Store, or both depending on the revision:
snap info snap-store
Install the graphical store package after snapd is ready:
sudo snap install snap-store
Verify the installed package, then launch it from the applications menu or a graphical terminal:
snap list snap-store
snap run snap-store
Manage Installed Snaps on Linux Mint
List installed snaps:
snap list
Check whether updates are available:
snap refresh --list
Refresh all installed snaps:
sudo snap refresh
Remove one installed snap and keep Snap’s automatic removal snapshot:
sudo snap remove <package-name>
Use --purge when you want to remove that snap without creating a recovery snapshot:
sudo snap remove --purge <package-name>
Troubleshoot Snap on Linux Mint
Most Mint Snap failures come from the no-Snap pin still being active, the current session not seeing /snap/bin, or the socket not running.
Fix snapd Has No Installation Candidate
E: Package 'snapd' has no installation candidate means Mint is still blocking snapd or APT has not been refreshed since the pin changed. Check the package policy before rerunning the install:
apt-cache policy snapd | sed -n '1,6p'
If Candidate: (none) still appears, move or remove /etc/apt/preferences.d/nosnap.pref, then refresh APT again:
sudo mv /etc/apt/preferences.d/nosnap.pref /etc/apt/preferences.d/nosnap.pref.backup
sudo apt update
Fix snap Command Not Found on Linux Mint
Snapd adds /snap/bin through the system profile, but an already-open session may not pick it up immediately. Check the current shell path:
echo "$PATH" | tr ':' '\n' | grep '^/snap/bin$'
Expected output when the path is active:
/snap/bin
If the command prints nothing, sign out of your desktop session, sign back in, and open a new terminal. Until then, run snap apps with snap run package-name.
Fix cannot communicate with server on Linux Mint
If a snap command says it cannot communicate with the server, snapd.socket is not active even though the package is installed. Enable and start the socket, then recheck it:
sudo systemctl enable --now snapd.socket
systemctl is-active snapd.socket
Expected output:
active
If the socket still refuses to start, reboot once and rerun the same check before reinstalling packages.
Fix Missing Snap App Launchers on Linux Mint
New snap applications can take a logout/login cycle to appear in Cinnamon, MATE, or Xfce menus. If the package is installed but the launcher is missing, confirm the snap exists and refresh the desktop session before assuming the install failed:
snap list <package-name>
Remove Snap from Linux Mint
Full Snap removal has three parts: remove installed snaps, purge the APT snapd package, and restore Mint’s no-Snap pin. Remove app snaps first so base snaps such as core can be removed cleanly afterward.
Remove Installed Snaps
List installed snaps and decide which packages you want to remove:
snap list
Removing snaps deletes applications and can delete their saved local state when
--purgeis used. Back up application data you still need before removing packages such as browsers, password managers, editors, or synced clients.
Remove each application snap first. Repeat the command for every app package you installed:
sudo snap remove --purge <snap-name>
After application snaps are gone, remove remaining base or support snaps that still appear in snap list. If Snap reports that a base snap is still in use, remove the dependent app first and rerun the command.
Purge snapd from Linux Mint
Purge the APT package after snap packages have been removed:
sudo apt purge snapd
Review optional dependency cleanup before accepting it:
sudo apt autoremove
Verify the package is no longer installed:
dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package}\n' snapd 2>/dev/null | grep -E '^(ii|rc)' || echo "snapd not installed"
Expected output after a full purge:
snapd not installed
Restore Linux Mint’s Snap Block
If you followed the rename step earlier, put the block file back in place:
sudo mv /etc/apt/preferences.d/nosnap.pref.backup /etc/apt/preferences.d/nosnap.pref
If the file was deleted instead of renamed, recreate Mint’s pin:
printf '%s\n' '# To prevent repository packages from triggering the installation of Snap,' '# this file forbids snapd from being installed by APT.' '# For more information: https://linuxmint-user-guide.readthedocs.io/en/latest/snap.html' '' 'Package: snapd' 'Pin: release a=*' 'Pin-Priority: -10' | sudo tee /etc/apt/preferences.d/nosnap.pref > /dev/null
The command uses sudo tee because plain shell redirection cannot write to a root-owned file from an unprivileged shell.
Refresh APT and confirm Mint is blocking snapd again:
sudo apt update
apt-cache policy snapd | sed -n '1,6p'
Expected output on Linux Mint 22.3:
snapd:
Installed: (none)
Candidate: (none)
Version table:
2.75.2+ubuntu24.04 -10
500 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
Linux Mint 21.x shows the Ubuntu 22.04 package string instead.
Remove Remaining Snap Data
Check for active snap mounts before deleting leftover directories:
findmnt -t squashfs | grep '/snap' || echo "No active snap mounts"
Expected output when no snap mount remains:
No active snap mounts
Print leftover Snap system and user paths before deleting anything:
sudo find /snap /var/snap /var/lib/snapd /var/cache/snapd "$HOME/snap" "$HOME/.snap" -prune -print 2>/dev/null
The cleanup command permanently deletes remaining Snap packages, caches, snapshots, per-user snap data, and local Snap authentication state. Remove any path from the command that you want to inspect or back up first.
sudo rm -rf -- /snap /var/snap /var/lib/snapd /var/cache/snapd
rm -rf -- "$HOME/snap" "$HOME/.snap"
Clear the current shell’s command cache and verify that snap is gone:
hash -r
command -v snap || echo "snap command removed"
Expected output:
snap command removed
Conclusion
Snap is available on Linux Mint after the nosnap.pref pin is moved and snapd is installed with APT. Use Snap for packages that are maintained best in Canonical’s store, keep Flatpak as the smoother Mint default when both formats are available, and restore the pin when you want Mint’s original package policy back.


I was led to this answer by another site where the person asking a question about this was just treated rudely. It is nice to see how well and professionally you handle technical matters.
In this business, such behavior is sometimes rare, although it shouldn’t be. I am glad to see you have high standards.
Thank you so much for this.
Very clear and well-written. Thank you!
THANK YOU,YOURE THE BEST,IM A NEWBIE AND THIS TUTORIAL WORKS PERFECTLY FOR MY LINUX MINT 21.2!
If there’s anything better than “perfect”, that’s what this tutorial is. Thank you very much.!
Thank you! It’s works perfectly!
Perfect tutorial. Thank you!!