How to Install and Enable Snap on Linux Mint 22 and 21

Last updated Thursday, May 28, 2026 12:58 pm Joshua James 7 min read 6 comments

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 sudo for 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, runs apt-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 --purge is 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.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show more of our fresh Linux tutorials in Top Stories and From your sources when relevant.

Add LinuxCapable as a preferred source on Google
Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffeeBuy me a coffee

6 thoughts on “How to Install and Enable Snap on Linux Mint 22 and 21”

  1. 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.

    Reply
Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed in published comments:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<blockquote>quote</blockquote> quote block

Got a Question or Feedback?

We read and reply to every comment - let us know how we can help or improve this guide.

Let us know you are human: