Snapd (Русский)

snapd это REST API демон для управления snap-пакетами ("snaps"). Пользователи могут взаимодействовать с ним с помощью snap клиента, входящего в тот же пакет.

Установка

Пакет snapd можно установить из официального репозитория.

В пакет входит snapd демон, а также snap-confine, который обеспечивает монтирование, изоляцию и запуск snap-пакетов.

Tip: snapd устанавливает скрипт в /etc/profile.d/ для экспорта путей в исполняемым файлам, входящим в snap-пакеты. Для того чтобы эти изменения вступили в силу потребуется перезагрузка.

Настройка

В пакет также входят несколько systemd unit файлов, которые обеспечивают возможность обновления всех установленных snap-пакетов, при выходе новой версии.

Для того чтобы snapd демон запускался, когда snap обращается к нему, запустите snapd.socket.

# systemctl start snapd.socket

Вы также можете активировать его при старте системы.

# systemctl enable snapd.socket

Для того чтобы автоматически обновлять пакеты активируйте snapd.refresh.timer:

# systemctl start snapd.refresh.timer

Удаление

Удаление пакета snapd не приводит к удалению всех каталогов и файлов, которые создаются при его использовании. Лучше всего удалить все snap-пакеты с помощью snap remove, перед тем как удалять сам пакет. Однако, на данный момент невозможно удалить snap-пакет ubuntu-core. Для того чтобы полностью удалить все файлы следуйте инструкции ниже.

1. Отмонтируйте все активные snap-пакеты из /snap.

# umount $(mount | grep snap | awk '{print $3}')

2. Удалите следующие каталоги:

# rm -rf /var/lib/snapd
# rm -rf /snap

3. Удалите все файлы, отвечающие за монтирование snap-пакетов из /var/lib/snapd/snaps в /snap при загрузке.

# find /etc/systemd/system -name "snap-*.mount" -delete
# find /etc/systemd/system -name "snap.*.service" -delete
# find /etc/systemd/system/multi-user.target.wants -name "snap-*.mount" -delete
# find /etc/systemd/system/multi-user.target.wants -name "snap.*.service" -delete

Управление snap-пакетами

Для управления пакетами используется утилита snap.

Поиск

Для поиска пакетов, доступных для установки используйте команду find:

$ snap find

Это выведет список всех доступных пакетов. Для поиска конкретного пакета используйте:

$ snap find критерий_поиска

Установка пакетов

Установить snap-пакет можно с помощью команды:

# snap install имя_пакета

Установка требует root привилегий. Установка с правами пользователя на данный момент невозможна. При установке snap загружается в /var/lib/snapd/snaps и монтируется в /snap/имя_пакета.

Кроме того, создаются также юнит-файлы для каждого snap-пакета и добавляются в /etc/systemd/system/multi-user.target.wants/, для того чтобы snap-пакеты монтировались при каждом запуске системы. Вы можете просмотреть список установленных пакетов командой:

$ snap list

Вы также можете устанавливать snap-пакеты локально, с жесткого диска:

# snap install --devmode /path/to/snap

Обновление пакетов

Для того чтобы обновить snap-пакеты выполните:

# snap refresh

Удаление пакетов

Для того чтобы удалить пакет выполните:

# snap remove snapname

Смотрите также