Введение / Зачем это нужно
Snap — это система упаковки и распространения программного обеспечения, разработанная Canonical. В отличие от традиционных пакетных менеджеров (APT, DNF), Snap-пакеты включают в себя все необходимые зависимости, что гарантирует их работу на любом поддерживаемом дистрибутиве Linux, независимо от версий системных библиотек.
Что вы получите:
- Единый способ установки популярного ПО (VS Code, Firefox, Spotify) на Ubuntu, Fedora, Debian и другие.
- Автоматические обновления приложений в фоновом режиме.
- Изоляцию приложений от системы (безопасность).
- Доступ к последним версиям программ, которые могут отсутствовать в официальных репозиториях дистрибутива.
Требования / Подготовка
Перед началом убедитесь, что:
- У вас установлен поддерживаемый дистрибутив Linux (Ubuntu 16.04+, Debian 10+, Fedora 29+, Arch Linux).
- У вас есть доступ к учётной записи с правами sudo (администратора).
- Ваша система подключена к интернету для загрузки пакетов.
💡 Совет: На некоторых дистрибутивах (например, vanilla Debian) пакет
snapdможет находиться в неосновных репозиториях. Вам может потребоваться их предварительно включить.
Пошаговая инструкция
Шаг 1: Установите демон Snap (snapd)
Сначала установите основной пакет snapd, который предоставляет snap-клиент и фоновую службу.
Для Ubuntu/Debian:
sudo apt update
sudo apt install snapd
Для Fedora/CentOS/RHEL:
sudo dnf install snapd
# Для CentOS/RHEL может потребоваться включить репозиторий EPEL
sudo dnf install epel-release
sudo dnf install snapd
Для Arch Linux:
sudo pacman -S snapd
# Включите и запустите службу
sudo systemctl enable --now snapd.socket
# Для классических (classic) пакетов также нужен симлинк
sudo ln -s /var/lib/snapd/snap /snap
Шаг 2: Проверьте статус службы snapd
После установки убедитесь, что служба запущена и готова к работе.
# Проверка активности socket-файла (основной способ)
systemctl is-active snapd.socket
# Ожидаемый вывод: active
# Альтернативная проверка через snap-клиент
snap version
# Вывод должен содержать версии snapd, snap и серию ядра.
Если служба не активна, запустите её:
sudo systemctl start snapd.socket
sudo systemctl enable snapd.socket # Автозапуск при загрузке
Шаг 3: Найдите нужное приложение в Snap Store
Используйте snap find для поиска доступных пакетов. Поиск идёт по названию, описанию и имени издателя.
# Поиск по ключевому слову (например, редактор кода)
snap find code
# Пример вывода:
# Name Version Publisher Summary
# code 1.85.2 vscode✓ Code editing. Redefined.
# code --classic 1.85.2 vscode✓ Code editing. Redefined (classic)
Обратите внимание на флажок ✓ — он означает, что пакет от официального издателя (verified). Избегайте пакетов без проверки от неизвестных источников.
Шаг 4: Установите выбранный Snap-пакет
Установка происходит через snap install. По умолчанию пакет устанавливается в строгом режиме (strict), что обеспечивает максимальную изоляцию.
# Базовая установка
sudo snap install <имя_пакета>
# Пример: Установка Firefox
sudo snap install firefox
# Для приложений, требующих полного доступа к системе (например, Docker, VS Code),
# используется режим 'classic'. Обратите внимание на это в выводе `snap find`.
sudo snap install code --classic
⚠️ Важно: Пакеты с конфиnement
classicимеют те же права, что и обычные системные приложения, и не изолированы. Устанавливайте их только из доверенных источников.
Шаг 5: Управляйте установленными Snap-приложениями
Просмотр списка установленных пакетов
snap list
# Вывод:
# Name Version Rev Tracking Publisher Notes
# code 1.85.2 234 latest/stable vscode✓ classic
# firefox 128.0.3 248 latest/stable mozilla✓
Обновление пакетов
Snap-пакеты обновляются автоматически по умолчанию. Принудительно обновить все пакеты:
sudo snap refresh
Обновить конкретный пакет:
sudo snap refresh <имя_пакета>
Удаление пакета
sudo snap remove <имя_пакета>
# Пример:
sudo snap remove code
Получение информации о пакете
snap info <имя_пакета>
# Показывает: описание, версии, каналы обновлений (stable/candidate/beta/edge),
# зависимости, размер и конфигурацию.
Проверка результата
- Убедитесь, что Snap-демон работает:
snap version
В выводе должны быть указаны версииsnapd,snapи серия ядра. - Проверьте установленное приложение:
snap list | grep firefox
Если пакет присутствует в списке, установка прошла успешно. - Запустите приложение:
- Через меню приложений вашей графической оболочки (GNOME, KDE).
- Или из терминала, просто набрав имя пакета (например,
firefox). - Для классических пакетов команды доступны в обычном
PATH.
Возможные проблемы
Ошибка «command not found: snap» после установки snapd
Причина: Пакет установлен, но сессия терминала не видит новый путь /snap/bin (или /usr/bin в некоторых дистрибутивах).
Решение: Закройте и откройте терминал заново или выполните:
export PATH=$PATH:/snap/bin
Для постоянного решения добавьте эту строку в ~/.bashrc или ~/.zshrc.
Ошибка «snapd service not started» или «cannot communicate with server»
Причина: Служба snapd.socket не запущена.
Решение:
sudo systemctl start snapd.socket
sudo systemctl enable snapd.socket
Недостаточно места на диске
Причина: Snap-пакеты могут быть большими (1-2 ГБ), так как содержат все зависимости.
Решение:
- Очистите старые версии пакетов:
sudo snap set system refresh.retain=2 # Оставлять только 2 последние версии sudo snap refresh --amend # Применить настройку к текущим пакетам - Удалите ненужные пакеты (
sudo snap remove <имя>). - Проверьте место:
df -h /var/lib/snapd/.
Конфликт с классическим пакетом (например, два Firefox)
Причина: Вы установили Snap-версию Firefox, но в системе уже есть версия из APT/DNF. Они конфликтуют по путям.
Решение: Удалите классический пакет:
# Для Ubuntu/Debian
sudo apt remove firefox
# Для Fedora
sudo dnf remove firefox
Затем убедитесь, что Snap-версия запускается. В некоторых дистрибутивах (как Ubuntu) Snap-версия Firefox поставляется как системная по умолчанию, и удаление APT-пакета может быть автоматическим.