Snapd (Русский)

From ArchWiki
Jump to: navigation, search

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

Установка

Установите snapdAUR или его git версию, snapd-gitAUR.

В пакет входит 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

Управление 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

Удаление

Удаление пакета snapdAUR не приводит к удалению всех каталогов и файлов, которые создаются при его использовании. Лучше всего удалить все 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

Советы и рекомендации

Classic snaps

Some snaps (e.g. Skype and Pycharm) use classic confinement. However, classic confinement requires the /snap directory, which is not FHS-compliant. Therefore, the snapd package doesn't ship this directory. However, if the user wants to, he can manually create a symlink from /snap to /var/lib/snapd/snap, to allow the installation of classic snaps:

# ln -s /var/lib/snapd/snap /snap

Помощь

Почтовая рассылка Arch Linux и другие официальные каналы поддержки Arch Linux не являются подходящим местом для запроса помощи по snap-пакетам на Arch Linux. Подходящим местом для запроса поддержки является Snapcraft forum.

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