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.socket→active (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-world→hello-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-пакеты