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.
| Part | What it does |
|---|---|
| Snap package | Contains an application release and its packaged dependencies |
| snapd | Background service that manages Snap operations |
| snap command | Client used to find, install, run and remove packages |
| Snap Store | Catalog 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.

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.
| Task | Command | What it checks |
|---|---|---|
| List installed packages | snap list | Installed versions and tracked channels |
| Refresh one app | sudo snap refresh app-name | Applies an available update to that app |
| Remove an app | sudo snap remove app-name | Uninstalls a Snap package |
| Inspect app details | snap info app-name | Publisher, available releases and channels |

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.

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.

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

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.
| Symptom | First check | Next step |
|---|---|---|
| snap command is missing | Check whether snapd is installed for this distribution | Use its official daemon setup instructions |
| Mint reports no installation candidate | Check for nosnap.pref in APT preferences | Rename the file, refresh APT and retry |
| Install remains pending | Run snap changes to inspect recent operations | Wait for an active task or follow its error details |
| App cannot access a device or file | Run snap connections app-name | Review the required interface before connecting it |
| Snap client cannot reach daemon | Check snapd.socket on systemd distributions | Enable 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.
