Install Snap on Linux: snapd and Apps

Install Snap on Linux: snapd and Apps

A Snap app from the Snap Store needs snapd available and running on your Linux system before you can install it. Snap is an application package, and snapd is the background service that manages Snap installations.

I’ll show you how to set up snapd for your distribution, then install an app.

TL;DR

Install snapd for your distribution before using the snap command to install an app. On Linux Mint 20 and later, rename the APT preference file that blocks snapd first.

  • Ubuntu usually includes snapd. Debian uses sudo apt install snapd.
  • Mint requires renaming /etc/apt/preferences.d/nosnap.pref before the APT install.
  • Arch installs snapd from the AUR and needs snapd.socket enabled.
  • Install an app with sudo snap install app-name, then launch it by its command name.

What is a Snap package?

A Snap is an application package distributed through the Snap Store. The snapd daemon manages installation, updates and removal, while the snap command asks that daemon to perform those tasks.

That separation matters when an install command fails. The app package is not the first requirement: your distribution must have snapd available and running. Newer Ubuntu releases and several distributions ship with it ready, while other systems need a separate setup step.

A Snap carries the application and its packaged components in a mounted, read-only image. It can run on different distributions when snapd and the host support the features the app needs. A Snap still uses host resources through defined interfaces, so “works across distributions” does not mean every app has identical access or behavior everywhere.

PartWhat it does
Snap packageContains an application release and its packaged dependencies
snapdBackground service that manages Snap operations
snap commandClient used to find, install, run and remove packages
Snap StoreCatalog from which users discover and install published Snaps

APT, DNF and Pacman instead use each distribution’s configured repositories and package database. A Snap can be useful when an app is distributed through the Snap Store or its publisher maintains that build. If you want to compare another standalone format, see our guide to installing an AppImage on Linux.

How to install Snap on Linux step by step

The procedure depends on the distribution because each project decides whether snapd is preinstalled and how it is packaged. Use the matching route below, then install and check one app before adding more.

Step 1: Check whether snapd is already available

Run the snap client without an install request to see whether the command exists. On systems where Snap is preinstalled, continue to the app installation step. If the shell says that snap is not found, follow your distribution’s setup instructions below.

snap

This check does not install anything. Ubuntu 16.04 and later and many Ubuntu flavours list snapd as ready to use in Snapcraft’s documentation. Confirm your release if the command is missing or was removed.

Step 2: Install snapd on Ubuntu or Debian

On Debian, refresh APT’s package index and install snapd. Recent Ubuntu releases generally already include it, so use these commands only when snapd is absent or you are following an Ubuntu variant’s specific instructions.

sudo apt update
sudo apt install snapd

Log out and back in or restart after installation so the Snap paths are available in your session. A Debian installation may then install the snapd Snap itself to obtain the current daemon release, as described in the Debian-specific Snapcraft guide. Do not add that extra step unless the guide or a Snap’s error message calls for it.

Step 3: Enable Snap on Linux Mint

Linux Mint 20 and later blocks the snapd package through an APT preferences file named nosnap.pref. Renaming it keeps a backup and removes the preference from APT’s active configuration, so the package becomes installable.

sudo mv /etc/apt/preferences.d/nosnap.pref /etc/apt/preferences.d/nosnap.bak
sudo apt update
sudo apt install snapd

The backup remains in the same directory under a different extension. That lets you restore the original preference if you later stop using Snap.

If the move says the file does not exist, do not create it. Check your Mint release and the official installation instructions.

After the install, log out and back in or restart, then test snapd with a small package. Linux Mint documents the package block as an intentional distribution choice, so users should know that enabling it changes the system’s package-source policy. For another APT-based install, our guide to installing a local DEB file with APT explains the repository package route alongside Snap.

Step 4: Install snapd on Arch Linux

Arch provides snapd through the Arch User Repository rather than its official package repositories. The documented manual build uses makepkg, so prepare the AUR build prerequisites and review the package build before installing it.

git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -si
sudo systemctl enable --now snapd.socket

The socket lets systemd start snapd when a Snap client connects. Arch also documents AppArmor setup for confinement and a /snap link for classic Snaps.

These are separate requirements, not steps to apply blindly to every Arch installation. Our Pacman guide explains the package manager used for Arch repository packages. AUR builds follow a different trust and review process.

Step 5: Verify snapd and install an app

Use the hello-world Snap as a quick check that the daemon can retrieve and launch a package. The command below installs the test app, and the next command runs it.

sudo snap install hello-world
hello-world

A successful test prints “Hello World!” after installation. The existing terminal capture below shows this check.

It tests the path from the Store through snapd to launch before you install an app you rely on.

Terminal installing and running the hello-world Snap

When the test works, install the app by its Snap Store name. For example, VLC’s Snap package can be installed with the command below. Browse or search the Store first if you are unsure of the package name or publisher.

snap find vlc
sudo snap install vlc

After installation, open the app from your desktop menu or run its command name. For example, the LinuxForDevices guide to installing Discord on Linux compares the package sources available for that application.

What to check after installing snapd

Snap packages have separate release channels, update behavior and access permissions. Check these settings when an app is missing a feature, updates at an unexpected time or requests access beyond its normal sandbox.

TaskCommandWhat it checks
List installed packagessnap listInstalled versions and tracked channels
Refresh one appsudo snap refresh app-nameApplies an available update to that app
Remove an appsudo snap remove app-nameUninstalls a Snap package
Inspect app detailssnap info app-namePublisher, available releases and channels
Terminal output listing installed Snap packages

Snaps refresh automatically by default. Use snap refresh when you want to check for an update now, rather than assuming an app’s release is controlled by APT or DNF. The existing refresh capture illustrates the command applied to one package.

Terminal checking updates for a Snap package

To remove an app, pass its Snap name to snap remove. Snapd normally saves an automatic snapshot of app data before removal on classic Linux systems.

Check the current Snap documentation if you need to retain or restore that data. The terminal image shows removal of the hello-world test package.

Terminal removing the hello-world Snap package

A channel identifies the release stream a Snap follows. The publisher sets the default. Beta or edge channels can contain less-tested builds.

Inspect the channel in snap info before switching an app you depend on. The saved channel screenshot shows an edge build. Treat it as tracking-state evidence, not a recommendation for a daily-use app.

snap info app-name
sudo snap install app-name --channel=latest/stable
Terminal showing a Snap installed from the edge channel

A channel has a track, a risk level and an optional branch. Stable, candidate, beta and edge indicate release maturity. Check the app’s listing before choosing a channel.

Use snap refresh –channel=beta app-name when you deliberately want the beta build. To return to stable, switch to stable and refresh again. A beta build can include changes that have not reached the stable release.

sudo snap switch --channel=stable app-name
sudo snap refresh app-name

If a release causes a problem, snap revert can return the app to its previous revision. It restores associated configuration, but not all user data.

Strict confinement limits an app’s access to files and system resources through interfaces.

Check a package’s requested connections with snap connections app-name when a camera, removable drive or home-directory file is unavailable. Classic confinement allows broader host access and requires an explicit install option, so use it only when the publisher documents that requirement and you trust the app.

If the test install cannot connect, check whether the daemon socket is active on distributions that use systemd. The read-only check below reports the socket state. Starting it is a separate system change.

systemctl is-active snapd.socket

An inactive socket on Arch can be enabled with the command in its setup step. Other errors may involve network access, unsupported kernel features or a Snap-specific interface.

Check snap changes for a failed operation. Use Snapcraft’s current troubleshooting guide rather than adding broad permissions without understanding the request. For service-state details, see our guide to checking and managing Linux services.

When an install appears to hang, first check whether snapd has an operation in progress with snap changes. That command lists recent changes and their states, which helps distinguish a download still running from a failed task. If the change is marked as doing, give the operation time to finish before repeating the install command.

If the package installs but the command cannot be found, log out and back in or restart to refresh the session’s executable paths. On Arch, the official notes call out a profile script that adds Snap command paths. Check the app’s entry in snap list and try snap run app-name if invoking its command directly does not work.

Some Snaps need interfaces to reach a camera, removable storage or files in your home directory. The connections command shows which interfaces are connected for one app.

An empty slot means access is not connected. Follow the publisher’s instructions and the interface documentation before granting access. Each permission changes what the app can reach.

On Arch, also check that AppArmor is installed and enabled if you expect Snap confinement. Snapcraft’s Arch instructions separate daemon availability from confinement setup. A Snap can still launch without the intended security profile on a system where AppArmor is unavailable, so do not interpret a successful launch as proof that confinement is active.

To inspect an app before installing it, use snap info app-name and compare its publisher, summary and channels with the listing you meant to choose. A publisher check does not replace a security review, but it can catch similarly named packages.

The Store listing also tells you whether the app requires classic confinement. The install command must request that mode explicitly, and classic gives the app broader access to host resources.

SymptomFirst checkNext step
snap command is missingCheck whether snapd is installed for this distributionUse its official daemon setup instructions
Mint reports no installation candidateCheck for nosnap.pref in APT preferencesRename the file, refresh APT and retry
Install remains pendingRun snap changes to inspect recent operationsWait for an active task or follow its error details
App cannot access a device or fileRun snap connections app-nameReview the required interface before connecting it
Snap client cannot reach daemonCheck snapd.socket on systemd distributionsEnable the socket only if the distro guide calls for it

These checks narrow the failure to the package, the daemon or an app permission. Do not remove the Mint preference file as the first troubleshooting step on a different distribution, since that file is specific to Mint’s APT setup.

Conclusion: install the daemon before an app

Snap installation has two parts: configure snapd for the distribution, then use snap to install and manage applications. Mint’s APT preference is a special case, while Ubuntu, Debian and Arch each have a documented setup path.

Start with the official Snapcraft daemon installation guide for other distributions, and consult the Snapcraft usage guide for commands and release channels.

FAQ

These answers cover the common setup questions that remain after snapd is installed.

Is snapd installed on Ubuntu by default?

Recent Ubuntu releases and many Ubuntu flavours include snapd ready to use. If the snap command is missing, follow the Ubuntu-specific Snapcraft instructions for your release.

Why does Linux Mint say snapd has no installation candidate?

Linux Mint 20 and later places an APT preference file named nosnap.pref that blocks snapd. Rename that file, run sudo apt update, then install snapd as described in the Mint installation steps.

How do I install a Snap application?

After snapd is available, install an app with sudo snap install app-name, using the package name shown in the Snap Store or snap find.

Do Snap applications update automatically?

Yes. Snapd refreshes installed Snaps automatically by default. Run sudo snap refresh app-name to request a check and update for one package.