Установка Snapd и Snap Store на Debian 13, 12, 11: полное руководство

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

В отличие от традиционных DEB-пакетов, Snap-пакеты обновляются автоматически и изолированы от основной системы, что повышает безопасность.

В этом руководстве я покажу, как установить snapd (демон, управляющий snap-пакетами) и Snap Store (графический магазин приложений) на Debian 13, 12 и 11.


Предварительные требования

Перед установкой убедитесь, что:

  • У вас есть доступ к интернету
  • Вы имеете права sudo (администратора)

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.

Ожидаемый вывод в терминале:

root

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.


Установка Snapd

Шаг 1: Обновите систему

sudo apt update && sudo apt upgrade -y

Шаг 2: Установите Snapd

sudo apt install -y snapd

Что делает: Устанавливает демон snapd, который управляет snap-пакетами, монтирует их и обрабатывает обновления.

Шаг 3: Убедитесь, что сокет snapd активен

systemctl status snapd.socket --no-pager

Что делает: Показывает статус сокета, через который snapd принимает команды.

Ожидаемый вывод: Active: active (listening)

Важно: Snapd использует socket activation. Это означает, что сам snapd.service может быть inactive (dead), пока вы не выполните первую команду. Проверяйте именно snapd.socket.

Если сокет не активен:

sudo systemctl enable --now snapd.socket

Установка базового runtime (core)

Snap-пакеты требуют базовую среду выполнения. Установите её:

sudo snap install core

Что делает: Устанавливает core — минимальную среду, необходимую для работы других snap-пакетов (около 100 МБ).

Проверьте, что core установлен:

snap list

Пример вывода:

Name    Version    Rev    Tracking       Publisher    Notes
core    16-2.x.x   xxxxx  latest/stable  canonical**  core
snapd   2.x.x      xxxxx  latest/stable  canonical**  snapd

Обновление PATH для snap-приложений

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

sudo reboot

После перезагрузки проверьте PATH:

echo $PATH | grep snap

Если вы не хотите перезагружаться, выполните в текущей сессии:

source /etc/profile.d/apps-bin-path.sh

Основные команды управления Snap

КомандаЧто делает
snap listПоказать установленные snap-пакеты
snap find "термин"Найти пакет в магазине
snap info имя-пакетаПоказать информацию о пакете
sudo snap install имя-пакетаУстановить пакет
sudo snap refresh имя-пакетаОбновить конкретный пакет
sudo snap refreshОбновить все snap-пакеты
sudo snap remove имя-пакетаУдалить пакет
sudo snap revert имя-пакетаОткатить пакет к предыдущей версии
snap changesПоказать историю операций
snap interfacesПоказать разрешения snap-пакетов

Установка Snap Store (графический магазин)

Если вам удобнее устанавливать приложения через графический интерфейс:

sudo snap install snap-store

Запуск:

snap run snap-store

Или через меню приложений: Activities → Показать приложения → Snap Store.


Решение типичных проблем

8.1 Ошибка: snap: command not found

Симптом: После установки snapd команда snap не работает.

Причина: Директория /snap/bin не добавлена в PATH текущей сессии.

Пошаговое решение:

Шаг 1: Перелогиньтесь или перезагрузитесь:

sudo reboot

Шаг 2: Если перезагрузка не помогла, проверьте, что существует файл /etc/profile.d/apps-bin-path.sh:

cat /etc/profile.d/apps-bin-path.sh

Шаг 3: Временно добавьте /snap/bin в PATH:

export PATH="$PATH:/snap/bin"

8.2 Проблема: Иконки Snap-приложений не отображаются в меню

Симптом: Snap-приложение запускается из терминала, но не появляется в меню приложений.

Причина: Окружение рабочего стола не загружает скрипт /etc/profile.d/apps-bin-path.sh.

Пошаговое решение:

Шаг 1: Создайте символическую ссылку для Xsession:

sudo ln -s /etc/profile.d/apps-bin-path.sh /etc/X11/Xsession.d/99snap

Шаг 2: Добавьте /snap/bin в глобальный PATH в /etc/login.defs:

sudo nano /etc/login.defs

Найдите строку ENV_PATH (или добавьте в конец файла):

ENV_PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Шаг 3: Перезагрузитесь:

sudo reboot

8.3 Ошибка: snapd.socket не активен

Симптом: systemctl status snapd.socket показывает inactive.

Пошаговое решение:

sudo systemctl enable --now snapd.socket

Если не помогло — переустановите snapd:

sudo apt install --reinstall snapd

8.4 Ошибка: snapd.service отключён или не может запуститься

Симптом: Snap-команды не работают, snapd.service не запускается.

Причина: Конфликт с системой (например, на очень старых ядрах).

Пошаговое решение:

Шаг 1: Убедитесь, что ядро поддерживает snap (kernel 4.4+):

uname -r

Шаг 2: Проверьте, что необходимые модули загружены:

lsmod | grep squashfs

Если нет — загрузите:

sudo modprobe squashfs

Шаг 3: Включите и запустите snapd:

sudo systemctl enable --now snapd

8.5 Ошибка: Недостаточно места для установки snap-пакета

Симптом: Snap-пакет не устанавливается, ошибка нехватки места.

Причина: Snap-пакеты монтируются как squashfs-образы и требуют места в /var/lib/snapd/ и /snap.

Пошаговое решение:

Шаг 1: Проверьте свободное место:

df -h /var/lib/snapd /snap

Шаг 2: Очистите старые версии snap-пакетов:

sudo snap list --all | awk '/disabled/{print $1, $3}' | while read name rev; do sudo snap remove "$name" --revision="$rev"; done

Шаг 3: Если всё ещё не хватает места — переместите /var/lib/snapd на другой диск (требуется опыт).


Чек-лист: что проверить после установки

  • [ ] Snapd установлен: snap version показывает версию (не command not found)
  • [ ] Сокет активен: systemctl status snapd.socketactive (listening)
  • [ ] Core runtime установлен: snap list | grep core → строка с core
  • [ ] PATH содержит /snap/bin: echo $PATH | grep snap → есть строка
  • [ ] Snap Store установлен (опционально): snap list | grep snap-store
  • [ ] Можно установить тестовый пакет: sudo snap install hello-worldhello-world выводит сообщение

Удаление Snapd

Шаг 1: Удалите все snap-пакеты и snapd

sudo apt remove --purge snapd
sudo apt autoremove

Шаг 2: Перезагрузитесь (чтобы размонтировать snap-образы)

sudo reboot

Шаг 3: Удалите оставшиеся данные

sudo rm -rf /var/snap /snap ~/snap

Шаг 4: Проверьте удаление

snap version

Ожидаемый вывод: bash: snap: command not found


Часто задаваемые вопросы (FAQ)

Вопрос: Snap уже установлен в Debian по умолчанию?
Ответ: Нет, snapd нужно установить вручную, хотя он доступен в официальных репозиториях.

Вопрос: В чём разница между Snap и Flatpak?
Ответ: Оба — системы контейнеризации приложений. Snap разработан Canonical, использует единый магазин Snap Store. Flatpak — от GNOME/KDE, использует Flathub. Snap-пакеты обновляются принудительно, Flatpak — с контролем пользователя. На Debian можно использовать обе системы одновременно.

Вопрос: Безопасны ли Snap-пакеты?
Ответ: Да, каждый snap-пакет изолирован (содержит свои зависимости и ограничен в доступе к системе). Разрешения можно контролировать через snap interfaces.

Вопрос: Как отключить автоматическое обновление snap-пакетов?
Ответ: Полностью отключить нельзя (это нарушает модель безопасности). Но можно задать окно обновления:

sudo snap set system refresh.timer=4:00-7:00,19:00-22:00

Вопрос: Snap-пакет не запускается, как посмотреть логи?
Ответ: Используйте snap logs имя-пакета или смотрите системный журнал: journalctl -u snap.имя-пакета.


Заключение

Теперь Snapd установлен на вашем Debian, и вы можете пользоваться огромным каталогом Snap-пакетов — от VLC до VS Code.

Что дальше?

  • Установите Snap Store для графического поиска и установки
  • Установите Flatpak для ещё большего выбора приложений
  • Установите Firefox или Chromium как Snap-пакеты