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
| Command | Description |
|---|---|
snap list | List installed snaps |
snap search [term] | Search for snaps |
snap install [name] | Install snap |
snap remove [name] | Uninstall snap |
snap refresh | Update all snaps |
snap refresh [name] | Update specific snap |
snap revert [name] | Downgrade to previous version |
snap info [name] | Show snap details |
snap version | Show snapd version |
snap help | Show 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
| Command | Description |
|---|---|
snap list | List all installed snaps |
snap list --all | Include unavailable snaps |
snap list --updates | Show available updates |
snap refresh | Update all snaps |
snap refresh [name] | Update specific snap |
snap refresh [name] --channel=beta | Update 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