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.
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