# Snap (Русский)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Ссылки по теме

- Flatpak

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 (06/16) about Ubuntu snaps becoming available for Arch and other distros

Category:

- Development (Русский)