С чего начать Первые шаги трек · 15 ступеней
Linux Labs

snap — пакеты Ubuntu

4 мин Ubuntu 24.04 · snapd

Второй формат пакетов Ubuntu с автообновлением; sudo snap revert откатывает к прежней версии, которую snap хранит сам.

Шпаргалка

7 команд Версия для печати
  • snap list установленные пакеты
  • sudo snap install nginx установить пакет
  • sudo snap refresh обновить все пакеты
  • sudo snap refresh --hold nginx запретить автообновление пакета
  • sudo snap revert nginx откатить к предыдущей версии
  • snap services сервисы всех snap-пакетов
  • sudo snap remove --purge nginx удалить вместе с данными

Обзор

snap — второй формат пакетов в Ubuntu (помимо apt): самодостаточные приложения с автообновлением, изолированные в песочнице. Часто так ставят свежие версии (certbot, некоторые утилиты, IDE).

bash
snap list                         # установленные snap-пакеты (+ версия, канал)
snap find keyword                 # поиск в Store
snap info package                 # сведения и доступные каналы (tracks)

Ключи

5

Пакет ставится в песочнице (confinement): доступ к файлам вне $HOME и к устройствам нужно подключать явно интерфейсами (plug/slot), иначе snap их не видит, даже если процесс запущен от root. --classic снимает песочницу полностью — используй его только для пакетов, которые сами об этом просят (IDE, инструменты сборки), не по умолчанию.

bash
snap connections nginx            # какие интерфейсы подключены
sudo snap connect nginx:removable-media   # подключить доступ явно
sudo snap set system refresh.retain=2     # хранить меньше старых ревизий
Ключ Что делает Пример
--classic Установить без песочницы — полный доступ к системе, как у обычного пакета. опасно snap install code --classic
--channel CHANNEL Установить или переключить пакет на другой канал (stable/candidate/beta/edge). snap install nginx --channel=edge
--hold Приостановить автообновление пакета на время (или навсегда без срока). snap refresh --hold nginx
--purge При удалении пакета стереть и его данные, без возможности отката. опасно snap remove --purge nginx
--revision N Установить конкретную ревизию пакета вместо последней в канале. snap install nginx --revision=123

Ничего не найдено. Попробуй запрос короче.

Рецепты

2

Команды

bash
sudo snap install package         # установить (стабильный канал)
sudo snap install package --classic   # полный доступ (IDE/инструменты, без песочницы)
sudo snap install package --channel=edge   # из другого канала
sudo snap refresh                 # обновить все snap
sudo snap refresh package         # обновить один
sudo snap refresh --hold package  # запретить автообновление пакета
sudo snap revert package          # откатить к предыдущей версии (snap её хранит!)
sudo snap remove package          # удалить
sudo snap remove --purge package  # + удалить данные
snap changes                      # история операций snapd
sudo snap install package --revision=123   # конкретная ревизия

Сервисы snap

bash
snap services                     # сервисы всех snap-пакетов и их состояние
sudo snap start package.svc       # запустить сервис пакета
sudo snap stop package.svc        # остановить сервис пакета
sudo snap restart package.svc     # перезапустить сервис пакета
sudo snap logs package            # логи сервиса
sudo snap info package            # доступные каналы: stable/candidate/beta/edge

Неполадки

5

Пакет ставится медленно/много весит

Snap несёт зависимости с собой (тяжелее apt) — это нормально. Для лёгких CLI часто лучше apt.

Snap не видит файлы вне $HOME

Песочница (confinement) ограничивает доступ. snap connections package, затем sudo snap connect package:removable-media (или нужный plug). Для полного доступа — --classic (если пакет поддерживает).

Обновился и сломался

sudo snap revert package — откат к прошлой версии (snap её хранит). Зафиксировать от автообновлений: sudo snap refresh --hold package.

Хочу понять, apt это или snap

which cmd, snap list | grep cmd, dpkg -S $(which cmd) (см. which, apt). Иногда инструмент есть в обоих — выбирай источник осознанно.

Старые ревизии занимают место

snap хранит прошлые ревизии. snap list --all; уменьшить число хранимых: sudo snap set system refresh.retain=2.

См. также

  • apt — Установка, обновление и удаление пакетов в Debian/Ubuntu; apt и dpkg.
Загрузка…