Как использовать Snap и управлять Snap-приложениями в Ubuntu 24.04

Как использовать Snap и управлять Snap-приложениями в Ubuntu 24.04

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

Snap, разработанный Canonical, дополняет привычные способы установки программ через .deb и APT, предлагая новый подход — изолированные, самодостаточные приложения, которые можно запускать на любых дистрибутивах Linux. Особенно удобно использовать Snap при настройке приложений на VPS — он упрощает развертывание и обеспечивает стабильность обновлений. В этой статье мы разберём, как устроен Snap и как устанавливать, обновлять, откатывать и удалять snap-приложения на Ubuntu 24.04.

В предыдущей статье мы начали рассказывать про Snap и Flatpak, но углубились в установку именно Flatpak. Теперь погрузимся в тему настроек Snap.

Аренда VPS/VDS от 219 руб/месяц

Преимущества VPS в AdminVPS:

✓ Бесплатное администрирование

✓ Только быстрые NVMe-диски

✓ Защита от DDoS-атак

✓ Быстрая техподдержка

Аренда VPS/VDS виртуального сервера от AdminVPS — это прозрачная и честная услуга с доступной ценой

Как работает Snap

Snap — это формат пакетов, которые содержат в себе всё необходимое для работы: бинарные файлы приложения, библиотеки, ресурсы и даже настройки окружения. Такой подход позволяет запускать одни и те же пакеты на разных дистрибутивах Linux без модификаций.

За работу Snap отвечает служба snapd, которая управляет установкой, обновлением, запуском и удалением пакетов. Каждое приложение имеет вид файла с расширением .snap. Это squashfs-архив, который монтируется в систему как read-only. Запуск и работа пакета контролируются snapd, который также управляет правами доступа и обновлениями.

Сами пакеты и их данные размещаются в разных частях файловой системы. Загруженные исполняемые файлы и зависимости находятся в /var/lib/snapd/snaps/. Пользовательские данные и настройки хранятся в ~/snap/<имя_программы>/ — эта директория создаётся в домашней папке пользователя и содержит конфигурацию, временные файлы, профили, кеш и историю работы приложения. Такое разделение позволяет Snap сохранять и изоляцию, и данные пользователя во время обновлений и переустановок.

Snap-пакеты, особенно графические приложения, весят больше, чем их аналоги в .deb. Это связано с тем, что в пакет включаются все зависимости, даже если они уже есть в системе. Также в /var/lib/snapd/snaps/ сохраняется предыдущая версия для возможного отката.

Установка Snap в Ubuntu 24.04

В Ubuntu 24.04 служба Snap предустановлена по умолчанию. Однако на минимальных образах, в контейнерах или при ручной сборке системы она может отсутствовать.

Чтобы проверить, установлен ли Snap и работает ли служба snapd, выполните команду:

snap version

Если команда не найдена или вывод отсутствует — это значит, что Snap отсутствует в системе. В этом случае установите его с помощью APT:

sudo apt update
sudo apt install snapd

Пакет snapd устанавливает:

  • фоновую службу snapd, которая управляет жизненным циклом Snap-пакетов;
  • системный сокет snapd.socket для обмена между приложениями и демоном;
  • клиентскую утилиту snap для установки, обновления и удаления приложений.

После установки можно вручную перезапустить или проверить состояние службы и сокета командами:

sudo systemctl start snapd
sudo systemctl enable snapd
systemctl status snapd
systemctl status snapd.socket

Если snapd.socket активен, значит система готова к установке и использованию Snap-пакетов.

Установка приложений через Snap

Для установки приложений через Snap используется команда:

sudo snap install <имя_пакета>

Перед установкой можно выполнить поиск нужного приложения по ключевому слову:

snap find <ключ>

Команда отобразит список доступных пакетов, краткое описание, издателя и канал.

Например, установка медиаплеера VLC из стабильного канала (по умолчанию):

sudo snap install vlc

Программа будет изолирована от системы, использовать собственные зависимости и обновляться автоматически.

Установка Visual Studio Code:

sudo snap install code --classic

Флаг --classic отключает полную изоляцию; он используется для установки приложений, которым нужен доступ к системным путям и инструментам вне окружения Snap. Это необходимо, например, для редакторов кода (VS Code, IntelliJ), терминальных утилит, приложений, которые запускают внешние процессы или работают с файлами в нестандартных местах. При использовании этого флага Snap-пакет будет иметь классический доступ, как у обычных .deb-пакетов, но при этом останется управляемым через Snap. Без --classic такие приложения не смогут функционировать корректно, потому что Snap по умолчанию изолирует среду исполнения от основной системы.

Управление установленными Snap-пакетами

После установки приложения через Snap вы можете управлять им так же, как и обычным пакетом: просматривать, обновлять, откатывать и удалять. Всё это выполняется через команду snap.

Чтобы посмотреть список установленных Snap-пакетов, используйте команду:

snap list

Вывод включает:

  • имя пакета,
  • версию,
  • ревизию,
  • канал обновлений (например, stable),
  • издателя.

Пример:

Команда snap list
Команда snap list

Snap обновляет приложения автоматически в фоновом режиме. Если вы хотите убедиться, что установлены актуальные версии перед отключением Интернета, деплоем или после настройки системы, то можно обновиться вручную так:

sudo snap refresh

Автообновления происходят несколько раз в день. Это может быть неудобно при слабом канале связи (мобильный интернет, корпоративный VPN) и если нужна максимальная стабильность окружения. В таких случаях можно установить разрешённое время для обновлений:

sudo snap set system refresh.timer=mon,wed,fri,6:00-8:00

Или отложить обновление:

sudo snap refresh --hold=168h

Snap всё равно будет проверять наличие патчей, но установит их только в разрешённое время.

Snap хранит одну предыдущую версию приложения, поэтому, если после обновления программа работает некорректно, можно откатить её:

sudo snap revert <пакет>

Чтобы удалить Snap-пакет:

sudo snap remove <пакет>

Команда удаляет пакет и симлинки, но пользовательская конфигурация сохраняется. Для полной очистки удалите её вручную или используйте флаг --purge.

Управление Snap-сервисом

За работу Snap в системе отвечает служба snapd. Она должна быть активна для установки, обновления и запуска Snap-приложений.

Чтобы узнать, работает ли snapd, выполните:

systemctl status snapd

В выводе должно быть active (running). Если служба отключена или завершилась с ошибкой, Snap-пакеты не смогут функционировать.

Если Snap ведёт себя нестабильно (например, не запускаются приложения, не проходит установка), службу можно перезапустить:

sudo systemctl restart snapd

Это безопасно, поскольку активные приложения при этом продолжат работу.

snapd использует системный сокет snapd.socket для коммуникации между клиентом (snap) и фоновым процессом. Проверка его статуса:

systemctl status snapd.socket

Если сокет отключён, команда snap может зависать или завершаться с ошибкой. В таком случае включите его:

sudo systemctl enable --now snapd.socket

После этого Snap должен работать корректно.

Работа с каналами (channels)

У каждого Snap-пакета может быть несколько каналов (версий):

  • stable — стабильная, протестированная версия (по умолчанию);
  • candidate — кандидат в релиз, почти стабильная;
  • beta — тестовая версия, может содержать баги;
  • edge — самая свежая, часто собираемая из исходников, предназначена для разработчиков и тестирования.

Чтобы установить пакет из нужного канала, укажите его при установке:

sudo snap install <пакет> --channel=<канал>

Это полезно, если вам нужно протестировать новые возможности приложения, получить исправления до официального релиза или сравнить поведение разных версий.

После установки можно в любой момент переключиться на другой канал с помощью команды snap refresh:

sudo snap refresh chromium --channel=stable

Как отключить Snap

Snap — интегрированная часть Ubuntu 24.04, однако он не является обязательным компонентом и его можно отключить или полностью удалить. Обратите внимание, что удаление Snap может повлиять на работу приложений, которые распространяются только в этом формате. Например, в Ubuntu 24.04 браузер Chromium доступен исключительно как Snap.

Удаление установленного Snap-пакета:

sudo snap remove --purge <имя_пакета>

Если нужно полностью отключить Snap, повторите команду для каждого установленного приложения. Чтобы посмотреть их список:

snap list

Удаление самого Snap и связанных компонентов:

sudo apt purge snapd
sudo rm -rf ~/snap /snap /var/snap /var/lib/snapd

Это приведёт к полному удалению Snap-инфраструктуры из системы.

Конфликты между Snap и deb-версиями программ

В некоторых случаях одно и то же приложение может быть доступно как в формате .deb, так и в виде Snap-пакета. Это может привести к путанице или конфликтам при установке и запуске.

Основные возможные проблемы:

  • Дублирование приложений — например, у вас может оказаться установлено одно приложение и из Snap, и из стороннего PPA как .deb. Оба будут отображаться одинаково в меню и командной строке, но работать по-разному.
  • Разное поведение — Snap-приложения запускаются медленнее, работают в изоляции и могут не иметь доступа к системным путям, что иногда вызывает ошибки, особенно при работе с внешними инструментами или файлами.
  • Приоритет в $PATH — если и .deb, и Snap версия имеют один и тот же бинарный файл (например, code), то приоритет будет зависеть от порядка путей в переменной окружения $PATH. Обычно Snap-путь /snap/bin идёт раньше, поэтому запускается Snap-версия.

Чтобы избежать конфликтов, явно указывайте путь к нужной версии, например:

/usr/bin/code   # deb-версия
/snap/bin/code  # snap-версия

Также удаляйте лишние версии, если они не используются, и контролируйте источники пакетов (PPA, Snap, Flatpak) при установке. Если вы работаете в стабильной среде — например, на сервере или в корпоративной системе — придерживайтесь одного формата для конкретного приложения.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

VPN на VPS-сервере

Узнайте, как создать собственный VPN на VPS-сервере для защиты ваших конфиденциальных данных!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях