What is SNAP?

Snap is Canonical's universal Linux packaging system - SquashFS-compressed packages containing applications and all dependencies. Installed via snapd daemon (runs as background service). Snaps are strictly confined with AppArmor sandboxing, requiring explicit permissions for system access (interfaces). Automatic updates via Snap Store. Snaps can be installed across distributions: Ubuntu (default), Fedora, Debian, Arch, openSUSE, and others. Uses mount points and loopback devices for isolation.

Snap powers millions of Linux installations, particularly on Ubuntu where it's the preferred packaging format. Popular apps available as Snaps: Firefox (default on Ubuntu 22.04+), Chromium, VS Code, Spotify, Slack, Discord, and thousands more via Snap Store. Snap enables delta updates (only changed parts downloaded), multiple concurrent versions (snap refresh --channel=beta), and rollbacks. Controversial in Linux community due to proprietary Snap Store backend and performance concerns. Installed with: sudo snap install package-name.

Did you know? Snaps automatically update in the background - always latest version!

History

Canonical developed Snap to solve dependency management and enable universal Linux application distribution with strong sandboxing and automatic updates.

Key Milestones

  • 2014: Snappy Ubuntu Core announced
  • 2016: Snap format released
  • 2017: Cross-distribution support
  • 2018: Desktop app focus
  • 2022: Firefox default on Ubuntu
  • Present: 10,000+ snaps available

Key Features

Core Capabilities

  • Automatic Updates: Background updates
  • Sandboxing: AppArmor isolation
  • Delta Updates: Only changed parts
  • Channels: Stable/beta/edge tracks
  • Rollback: Revert to previous version
  • Cross-Distribution: Universal compatibility

Common Use Cases

Web Browsers

Firefox, Chromium

Development Tools

VS Code, IDEs

Communication

Slack, Discord, Skype

Server Apps

Docker, databases

Advantages

  • Automatic background updates
  • Strong sandboxing security
  • Delta updates (bandwidth efficient)
  • Easy rollback to previous versions
  • Cross-distribution support
  • Multiple concurrent versions
  • Snap Store integration

Disadvantages

  • Slower startup (SquashFS mount overhead)
  • Larger disk usage (bundled dependencies)
  • Proprietary Snap Store backend
  • snapd daemon always running
  • Some permissions restrictive
  • Controversial in Linux community

Technical Information

Format Specifications

Specification Details
File Extension .snap
MIME Type application/vnd.snap
Format SquashFS compressed filesystem
Sandboxing AppArmor + seccomp
Manager snapd daemon
Store Snap Store (snapcraft.io)

Common Tools

  • Installation: sudo snap install package-name
  • Management: snap list, snap refresh, snap revert
  • Creation: snapcraft (build tool)
  • Channels: snap install --channel=beta package-name