Snap — Universal Packages

If you like this project, consider supporting me on Buy Me a Coffee ☕️


tags:

Description

Snap is a software deployment and package management system developed by Canonical (the company behind Ubuntu). Snap packages ("snaps") are self-contained applications bundled with all their dependencies into a single SquashFS image, providing cross-distribution compatibility and automatic updates. / Snap — система развертывания ПО, разработанная Canonical. Snap-пакеты — автономные приложения со всеми зависимостями.

Status: Actively maintained. Snap is the default package format for server applications on Ubuntu (e.g., LXD, MicroK8s). However, it is controversial in the community due to its centralized Snap Store (no third-party repositories), forced auto-updates, and slower startup times from SquashFS mounting. Some distributions (Linux Mint, Fedora) have chosen to not include Snap by default. Alternative: Flatpak is the main competitor for desktop applications. / Статус: Активно поддерживается. Является спорным из-за централизованного хранилища и принудительных обновлений. Альтернатива: Flatpak.


⚙️ Configuration

Main Configuration

Snap is primarily configured via system settings or command line arguments, rather than text files. / Snap в основном настраивается через системные настройки или аргументы командной строки, а не через текстовые файлы.

/var/snap/ (User data and configs / Данные пользователя и конфиги) /snap/ (Mount points for read-only squashfs images / Точки монтирования для read-only образов squashfs)

Proxy Configuration

sudo snap set system proxy.http="http://<HOST>:<PORT>"
sudo snap set system proxy.https="http://<HOST>:<PORT>"

🛠 Core Management

Install

sudo snap install <PACKAGE>                   # Install snap / Установить snap
sudo snap install <PACKAGE> --classic         # Install with classic confinement / Установить с классической изоляцией
sudo snap install <PACKAGE> --edge            # Install from edge channel / Установить из канала edge
sudo snap install <PACKAGE> --beta            # Install from beta channel / Установить из канала beta
sudo snap install <PACKAGE> --candidate       # Install from candidate channel / Установить из канала candidate

Search & List

snap find <KEYWORD>                           # Search for snaps / Поиск снапов
snap list                                     # List installed snaps / Список установленных снапов
snap info <PACKAGE>                           # Show snap details / Показать детали снапа
snap download <PACKAGE>                       # Download snap file / Скачать файл снапа

Update & Refresh

Snap updates automatically. Manual control: / Snap обновляется автоматически. Ручное управление:

sudo snap refresh                             # Update all snaps / Обновить все снапы
sudo snap refresh <PACKAGE>                   # Update specific snap / Обновить конкретный снап
sudo snap revert <PACKAGE>                    # Revert to previous version / Вернуться к предыдущей версии
sudo snap switch --channel=<CHANNEL> <PACKAGE> # Switch channel / Переключить канал (stable, candidate, beta, edge)

Remove

sudo snap remove <PACKAGE>                    # Remove snap / Удалить snap
sudo snap remove <PACKAGE> --purge            # Remove without saving snapshot / Удалить без сохранения снимка данных

🔧 Sysadmin Operations

Services & Logs

Snaps can register systemd services. / Snap-пакеты могут регистрировать сервисы systemd.

snap services                                 # List services / Список сервисов
sudo snap start <SERVICE>                     # Start service / Запустить сервис
sudo snap stop <SERVICE>                      # Stop service / Остановить сервис
sudo snap restart <SERVICE>                   # Restart service / Перезапустить сервис
snap logs <SERVICE>                           # Show service logs / Показать логи сервиса
snap logs -f <SERVICE>                        # Follow service logs / Следить за логами сервиса

Connections & Permissions

Manage permissions (interfaces) for isolated apps. / Управление правами (интерфейсами) для изолированных приложений.

snap connections <PACKAGE>                    # List interfaces / Список интерфейсов
sudo snap connect <PACKAGE>:<PLUG> <SLOT>     # Connect interface manually / Подключить интерфейс вручную
sudo snap disconnect <PACKAGE>:<PLUG>         # Disconnect interface / Отключить интерфейс

Snapshots (Backups)

Automatic snapshots on remove. Manual management: / Автоматические снимки при удалении. Ручное управление:

snap saved                                    # List saved snapshots / Список сохраненных снимков
sudo snap save <PACKAGE>                      # Create snapshot / Создать снимок
sudo snap restore <ID>                        # Restore snapshot / Восстановить снимок
sudo snap forget <ID>                         # Delete snapshot / Удалить снимок

🚨 Troubleshooting

Debugging

snap debug confinement                        # Print confinement mode / Показать режим изоляции
snap debug connectivity                       # Check connectivity / Проверить соединение
snap run --shell <PACKAGE>                    # Run shell inside snap environment / Запустить оболочку внутри окружения snap

Disk Space

Snap keeps old versions. To free space: / Snap хранит старые версии. Чтобы освободить место:

sudo snap set system refresh.retain=2         # Keep only 2 versions / Хранить только 2 версии
# Manually remove disabled snaps
snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do sudo snap remove "$snapname" --revision="$revision"; done

📊 Comparison: Confinement Modes

Mode Description (EN) Description (RU)
Strict Strongly isolated, no access to system files (Typical). Сильно изолирован, нет доступа к системным файлам (Типично).
Classic Full access to system (like apt/dnf). Required by IDEs, compilers. Полный доступ к системе (как apt/dnf). Требуется для IDE, компиляторов.
Devmode Strict but with full access logging (For developers). Строгий, но с логированием полного доступа (Для разработчиков).

🔒 Security

Sandbox

Snaps run in a sandbox using AppArmor, Seccomp, and cgroups. / Snap-пакеты запускаются в песочнице, используя AppArmor, Seccomp и cgroups.

Check current mode:

snap list <PACKAGE>                           # Check notes column / Проверить колонку заметок

On this page

linux 📦 Snap Cheatsheet (Universal Packages) Description ⚙️ Configuration Main Configuration Proxy Configuration 🛠 Core Management Install Search &amp; List Update &amp; Refresh Remove 🔧 Sysadmin Operations Services &amp; Logs Connections &amp; Permissions Snapshots (Backups) 🚨 Troubleshooting Debugging Disk Space 📊 Comparison: Confinement Modes 🔒 Security Sandbox 📚 Documentation Links