# 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

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

- arstechnica article (06/16) about Ubuntu snaps becoming available for Arch and other distros

Category:

- Development (Русский)