hostprofi.ru
Подобрать хостинг
Термин·буква S

Snap

краткое определение

Snap — формат универсальных пакетов Linux от Canonical, включающий приложение со всеми зависимостями в изолированном контейнере. Работает на любом Linux-дистрибутиве независимо от системного пакетного менеджера. Пакеты устанавливаются из Snap Store.

Snap — формат самодостаточных пакетов Linux, разработанный Canonical. Каждый snap-пакет содержит приложение и все его зависимости в едином сжатом образе (SquashFS). Изоляция обеспечивается через namespace-ы ядра и AppArmor. Обновления snap-пакетов происходят автоматически.

Особенности

  • Самодостаточность — snap включает библиотеки и зависимости, не конфликтуя с системными пакетами.
  • Кросс-дистрибутивность — один snap работает на Ubuntu, Fedora, Arch, Debian.
  • Автообновление — snapd проверяет обновления 4 раза в сутки.
  • Sandboxing — ограниченный доступ к системным ресурсам через интерфейсы (interfaces).

Критика

Snap подвергается критике: медленный запуск (монтирование SquashFS при первом запуске); принудительные автообновления без возможности отключить; Canonical контролирует Snap Store (в отличие от apt-репозиториев); большой размер пакетов из-за включённых зависимостей.

Snap vs Flatpak

Flatpak — аналогичная технология, ориентированная на настольные приложения, контролируемая community (не одной компанией). На серверах Snap более распространён из-за Ubuntu. На десктопах Flatpak становится предпочтительным.

История

Snap разработан Canonical в 2014 году для Ubuntu Touch. Snapd v2 вышел в 2016 году для Ubuntu 16.04 LTS. В Ubuntu 20.04 часть пакетов (в том числе Firefox с 2022 года) принудительно переведена на snap. Это вызвало споры: snap-версия Firefox запускается медленнее deb-версии.

Связь с хостингом

На серверах snap используется редко: большинство администраторов предпочитают apt для серверных пакетов. Исключение: snap install certbot --classic — официально рекомендуемый способ установки Certbot от EFF. LXD (управление контейнерами) также устанавливается через snap по рекомендации Ubuntu. На production-серверах snap-автообновления могут создавать нежелательные изменения — рекомендуется настраивать refresh.hold.

История Snap

Snap разработан Canonical для Ubuntu 16.04 в 2016 году. Формат .snap — squashfs-архив с приложением и всеми зависимостями. Snapcraft — инструмент сборки snap-пакетов. К 2023 году Snap Store содержит более 10 000 пакетов. Критика: медленный запуск из-за монтирования squashfs, высокое потребление места, принудительное использование в Ubuntu 22.04 для Firefox. openSUSE и Fedora также поддерживают Snap.

Snap vs Flatpak vs AppImage

ПараметрSnapFlatpakAppImage
ИзоляцияAppArmorBubblewrapнет
Автообновлениеда (фоново)вручнуюнет
Серверное ПОдаредконет
ДистрибутивUbuntu-центричныйуниверсальныйуниверсальный

Snap на сервере

На VPS Snap полезен для установки Certbot (snap install certbot --classic) — официально рекомендуемый способ для Let's Encrypt. Также через Snap устанавливают Docker, microk8s. Недостаток — snap-демон (snapd) потребляет постоянную память (~50 MB) даже на минимальных серверах.

Типичные ошибки

  • Установка Snap на минимальный сервер (512 MB RAM) — snapd занимает значимую часть памяти.
  • Смешивание snap и apt версий одного ПО: конфликты путей и конфигов.
  • Игнорирование автообновлений: snap обновляется автоматически, что может сломать работающий сервис.

На Ubuntu Server 22.04 Firefox и Chromium поставляются только как snap-пакеты, что вызвало споры в сообществе. Для серверных приложений snap обеспечивает автоматические обновления безопасности без участия администратора. Удалить snapd полностью: systemctl disable --now snapd && apt purge snapd.

Другие термины