Snap (Русский)
snapd это REST API демон для управления snap-пакетами ("snaps"). Пользователи могут взаимодействовать с ним с помощью snap клиента, входящего в тот же пакет.
Установка
Установите snapdAUR или его git версию, snapd-gitAUR.
В пакет входит snapd
демон, а также snap-confine, который обеспечивает монтирование, изоляцию и запуск snap-пакетов.
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 does not 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.
Смотрите также
- Official site
- GitHub repository
- arstechnica article (2016-06-14) о том, что "Ubuntu snaps" становятся доступными для Arch и других дистрибутивов