Skip to content

Snap

Snap is a universal Linux application package manager. Install, update, and manage snap applications on any Linux distribution.

Installation

Ubuntu/Debian

# Snap is pre-installed on Ubuntu 16.04+
snap version

# Manual installation
sudo apt install snapd

# Install snap support
sudo apt install snapcraft

# Classic confinement support
sudo snap install core

Other Linux Distributions

# Fedora
sudo dnf install snapd
sudo systemctl enable --now snapd.socket

# CentOS
sudo yum install snapd
sudo systemctl enable --now snapd.socket

# Arch
sudo pacman -S snapd

# openSUSE
sudo zypper install snapd

Basic Commands

CommandDescription
snap listList installed snaps
snap search [term]Search for snaps
snap install [name]Install snap
snap remove [name]Uninstall snap
snap refreshUpdate all snaps
snap refresh [name]Update specific snap
snap revert [name]Downgrade to previous version
snap info [name]Show snap details
snap versionShow snapd version
snap helpShow help information

Finding & Installing Snaps

# Search for snaps
snap search firefox
snap search text editor
snap search python

# Show snap details
snap info vlc

# List available channels (stable, candidate, beta, edge)
snap info vlc

# Install snap from specific channel
snap install vlc --stable
snap install vlc --beta
snap install vlc --edge

# Install with classic confinement
snap install --classic code
snap install --classic heroku

# Install snap for current user only
snap install --user vlc

# Install from local file
snap install ./vlc_*.snap

Managing Snaps

CommandDescription
snap listList all installed snaps
snap list --allInclude unavailable snaps
snap list --updatesShow available updates
snap refreshUpdate all snaps
snap refresh [name]Update specific snap
snap refresh [name] --channel=betaUpdate to beta channel
snap revert [name]Revert to previous version
snap remove [name]Uninstall snap
snap remove --purge [name]Remove snap and config
snap enable [name]Enable snap service
snap disable [name]Disable snap service

Snap Services

# Check snap status
snap services

# Check specific snap service
snap services [snap-name]

# Enable snap service
sudo snap start [snap-name]

# Disable snap service
sudo snap stop [snap-name]

# Restart snap service
sudo snap restart [snap-name]

# View snap logs
snap logs -f [snap-name]

# View logs from specific service
snap logs -f [snap-name].[service]

# Get recent logs
snap logs [snap-name] -n 50

Snap Permissions & Connections

# List snap connections
snap connections

# Show specific snap connections
snap connections [snap-name]

# Connect snap interface
sudo snap connect [snap-name]:[interface] [target-snap]:[slot]

# Disconnect snap interface
sudo snap disconnect [snap-name]:[interface]

# Allow snap to access webcam
sudo snap connect [snap-name]:camera

# Allow snap to access microphone
sudo snap connect [snap-name]:audio-record

# Allow snap to access home directory
sudo snap connect [snap-name]:home

# View available interfaces
snap debug interfaces

# View snap plugs
snap connections [snap-name]

Snap Channels

# Install from specific channel
snap install vlc --stable       # Current stable version
snap install vlc --candidate   # Release candidate
snap install vlc --beta        # Beta version
snap install vlc --edge        # Latest development

# Track specific channel
snap refresh vlc --edge

# Follow stable channel
snap refresh vlc --stable

# Switch back to stable from beta
snap refresh vlc --stable

# Hold snap version
snap refresh --hold=[snap-name]

# Unhold snap version
snap refresh --unhold=[snap-name]

Snap Configuration

# List snap options
snap get [snap-name]

# Get specific option
snap get [snap-name] [key]

# Set snap option
sudo snap set [snap-name] [key]=[value]

# Reset snap configuration
sudo snap unset [snap-name] [key]

# View all snap configurations
snap get [snap-name] -d

Common Snaps

Development Tools

# Code editor
snap install --classic code

# Heroku CLI
snap install --classic heroku

# Node.js
snap install node --classic

# Python
snap install python3

# Git
snap install git

# Go
snap install go --classic

# Rust
snap install rustup --classic

Utilities

# VLC media player
snap install vlc

# Firefox
snap install firefox

# Telegram
snap install telegram-desktop

# Slack
snap install slack

# Discord
snap install discord

# OBS Studio
snap install obs-studio

# Blender
snap install blender --classic

System Tools

# Docker
snap install docker

# Multipass (Ubuntu VM management)
snap install multipass

# Canonical Livepatch
snap install livepatch --classic

# Canonical Fwupd
snap install fwupd

Troubleshooting

Check Snap Status

# Check snapd service
systemctl status snapd

# Restart snapd
sudo systemctl restart snapd

# View snapd logs
sudo journalctl -u snapd -f

# Check snap version
snap version

# Verify snap health
snap debug sandbox-features

Update Issues

# Check available updates
snap list --updates

# Update all snaps
sudo snap refresh

# Update specific snap
sudo snap refresh [snap-name]

# Revert failed update
snap revert [snap-name]

# Check snap refresh history
snap changes

# Abort snap refresh
sudo snap abort [change-id]

Common Problems

# Snap permission denied
# Solution: Add user to snap group
sudo usermod -a -G snap $USER
newgrp snap

# Snap not found
# Solution: Check snap installation
snap search [snap-name]
snap install [snap-name]

# Cannot remove snap
# Solution: Force remove
sudo snap remove --purge [snap-name]

# Snap refresh hanging
# Solution: Check snapd status
sudo systemctl status snapd
sudo snap abort [change-id]

Snap Logs

# View all snap logs
snap logs

# Follow snap logs
snap logs -f

# Logs from specific snap
snap logs [snap-name]

# Follow specific snap logs
snap logs -f [snap-name]

# Show recent logs
snap logs [snap-name] -n 20

# Show detailed logs
snap logs [snap-name] -d

# Check systemd logs
journalctl -u snapd -f

# View snap service logs
journalctl -u snap.[snap-name] -f

Snap Aliases

# Create snap alias
snap alias [snap-name].[command] [alias-name]

# Remove snap alias
snap unalias [alias-name]

# List snap aliases
snap aliases

# Remove all aliases for snap
snap unalias [snap-name]

Best Practices

  • Keep snaps updated regularly
  • Use stable channel for production
  • Use beta/edge for testing new features
  • Check snap health regularly
  • Monitor disk space usage
  • Use connections for minimum permissions
  • Revert immediately if update fails
  • Backup snap configurations
  • Check logs for issues
  • Test snaps before production use

Disk Usage

# Check snapd disk usage
du -sh /snap
du -sh /var/snap
du -sh /var/lib/snapd

# List snap sizes
snap list | awk '{print $1}' | while read snap; do du -sh /var/snap/$snap; done

# Clean up snap cache
sudo rm -rf /var/snap/*/common/

# Remove old snap versions automatically
# Edit /etc/systemd/timers.target.wants/snapd.timer

Resources


Last updated: 2026-03-30