Linux установить snap пакет

Snap (Русский)

Состояние перевода: На этой странице представлен перевод статьи Snap. Дата последней синхронизации: 9 октября 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Snap — это система развёртывания программного обеспечения и управления пакетами. Пакеты называются «snaps», а инструмент для их использования — «snapd», который работает в различных дистрибутивах Linux и, следовательно, позволяет развёртывать программное обеспечение, не зависящее от дистрибутива. Изначально система Snap была разработана и создана компанией Canonical.

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

Snap-пакеты могут быть ограничены с помощью AppArmor, который по умолчанию доступен в официальных ядрах. Шаги по включению AppArmor в системе описаны в соответствующих вики-статьях.

Установка

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

Если вы используете AppArmor, запустите и включите службы apparmor.service и snapd.apparmor.service .

Примечание: Если AppArmor не включен в вашей системе, то все snap-пакеты будут работать в режиме devel, то есть они будут иметь такой же неограниченный доступ к вашей системе, как и приложения, установленные из репозиториев Arch Linux.

Настройка

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

Использование

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

Поиск

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

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

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

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

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

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

Читайте также:  Darkest dungeon для linux

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

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

# snap install --dangerous /путь/к/пакету/snap 

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

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

Пакеты обновляются автоматически в соответствии с настройкой refresh.timer .

Посмотреть время последнего/следующего обновления можно с помощью команды:

Изменение времени обновления, например, дважды в день:

# snap set core refresh.timer=0:00~24:00/2

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

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

# snap remove snapname 

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

Классические snap-пакеты

Некоторые пакеты (например, Skype и Pycharm) используют классический уровень ограничения (classic confinement). Однако он требует наличия каталога /snap , который не соответствует FHS. Пакет snapd не поставляет этот каталог, но на его месте можно создать символическую ссылку на /var/lib/snapd/snap , чтобы установка классических snap-пакетов стала возможна:

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

Ограничение доступа

При использовании AppArmor snapd сгенерирует такие же профили для snap-пакетов, что и на Ubuntu. Парсер AppArmor достаточно умён, чтобы отбросить правила, которые ещё не поддерживаются основным ядром.

Чтобы проверить, что базовое ограничение доступа работает, установите snap-пакет hello-world. Затем выполните следующее:

Hello Evil World! This example demonstrates the app confinement You should see a permission denied error next /snap/hello-world/27/bin/evil: 9: /snap/hello-world/27/bin/evil: cannot create /var/tmp/myevil.txt: Permission denied

AppArmor должен отказать в доступе и записать событие в журнал:

. [ +0.000003] audit: type=1327 audit(1540469583.966:257): proctitle=2F62696E2F7368002F736E61702F68656C6C6F2D776F726C642F32372F62696E2F6576696C [ +12.268939] audit: type=1400 audit(1540469596.236:258): apparmor="DENIED" operation="open" profile="snap.hello-world.evil" name="/var/tmp/myevil.txt" pid=10835 comm="evil" requested_mask="wc" denied_mask="wc" fsuid=1000 ouid=1000 [ +0.000006] audit: type=1300 audit(1540469596.236:258): arch=c000003e syscall=2 success=no exit=-13 a0=55d991ba6bc8 a1=241 a2=1b6 a3=55d991ba6be0 items=0 ppid=31349 pid=10835 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts2 ses=3 comm="evil" exe="/bin/dash" subj==snap.hello-world.evil (enforce) .

Если отказа не видно, проверьте, что профили загружены:

# aa-status | grep snap.hello-world
snap.hello-world.env snap.hello-world.evil snap.hello-world.hello-world snap.hello-world.sh

Также можно проверить, какие функции песочницы доступны в системе согласно snapd:

$ snap debug sandbox-features
apparmor: kernel:caps kernel:domain kernel:file kernel:mount kernel:namespaces kernel:network_v8 kernel:policy kernel:ptrace kernel:query kernel:rlimit kernel:signal parser:unsafe policy:default support-level:partial confinement-options: devmode dbus: mediated-bus-access kmod: mediated-modprobe mount: freezer-cgroup-v1 layouts mount-namespace per-snap-persistency per-snap-profiles per-snap-updates per-snap-user-profiles stale-base-invalidation seccomp: bpf-argument-filtering kernel:allow kernel:errno kernel:kill_process kernel:kill_thread kernel:log kernel:trace kernel:trap

Решение проблем

Нечитабельный текст

Если вместо нормальных символов отображаются квадратики, попробуйте очистить кэш шрифтов:

# rm -f /var/cache/fontconfig/* $ rm -f ~/.cache/fontconfig/* # fc-cache -r -v

Snapctl также хранит внутренние кэши для каждого snap-пакета отдельно, которые тоже нужно очищать. Сначала найдите их с помощью команды:

$ find ~/snap/ -wholename '*/.cache/fontconfig'
. /home/darth_vader/snap/mailspring/common/.cache/fontconfig . /home/darth_vader/snap/authy/common/.cache/fontconfig . /home/darth_vader/snap/icedrive/common/.cache/fontconfig . /home/darth_vader/snap/discord/common/.cache/fontconfig . /home/darth_vader/snap/bitwarden/common/.cache/fontconfig

Затем либо удалите их по отдельности, либо используйте этот простой цикл.

Читайте также:  Linux посмотреть название компьютера

Наконец, перезапустите сеанс.

Error: cannot mount squashfs

Snap-пакеты используют файловую систему SquashFS. Если случается подобная ошибка:

error: system does not fully support snapd: cannot mount squashfs image using "squashfs"

проверьте, загружен ли модуль ядра SquashFS:

Module Size Used by squashfs xxxxx x .

Совет: Если snapd был установлен только что — возможно, нужно перезагрузиться перед установкой snap-пакетов.

Помощь

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

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

  • Официальный сайт
  • Репозиторий на GitHub
  • Статья на Ars Technica (2016-06) о том, что «Ubuntu snaps» становятся доступными для Arch и других дистрибутивов

Источник

Установка и использование Snap на разных дистрибутивах Linux

Установка и использование Snap на разных дистрибутивах Linux

Вкратце: Snap — это система управления и распределения пакетов, предоставляемая компанией Canonical (авторами Ubuntu). В этой статье мы рассмотрим как установить и использовать Snap на различных дистрибутивах Linux.

До сего момента вы уже могли слышать о Snap. Canonical описывает свою разработку как универсальный способ установки пакетов на любом дистрибутиве Linux.

Сами Snap-пакеты представляют собой заранее скомпилированные, вместе со всеми своими зависимостями и библиотеками, приложения, для которых, ко всему прочему, еще и существует своя собственная изолированная среда запуска. Они легче и быстрее устанавливаются, могут получать последние обновления, а также более безопасны, с точки зрения доступа к операционной системе и важным файлам.

Приложение может быть запаковано для любого дистрибутива Linux, сервера или облака в виде Snap. Разработчики более не должны испытывать боль и страдания, упаковывая свои программы для каждого отдельного дистрибутива Linux и прочих платформ, и именно по этой причине многие отдают предпочтение данному виду пакетов.

Преимущества Snap:

  • Создаются один раз и для всех поддерживающих платформ. Помимо всего прочего, Snap-пакеты содержат все зависимости и библиотеки, а это значит, что каких-либо проблем с запуском и использованием почти не будет.
  • Автоматически обновляются
  • Один Snap для всего: дистрибутив Linux, сервер или облако.
  • Доступность разных версий: вы в любой момент можете переключаться между стабильной, бета и даже ежедневной версиями любого Snap-приложения
  • Безопасность: Snap-приложения всегда запускаются в изолированной среде у которой нет доступа к остальной части вашей операционной системы.
Читайте также:  Linux on mac pro

Как установить Snap на Linux

snap-linux-support

Перед установкой Snap-пакетов необходимо установить Snapd — среду управления, которая обрабатывает установку и обновления Snap-приложений в вашем дистрибутиве Linux.

Включение поддержки Snap в Debian и Ubuntu

Если вы хотите использовать Snap на Linux Mint и других дистрибутивах, основанных на Debian или Ubuntu, то используйте эту команду:

Включение поддержки Snap в дистрибутивах Fedora:

Включение поддержки Snap в Arch-based дистрибутивах

Spapd доступен в AUR. Используйте команды ниже, чтобы установить его оттуда.

yaourt -S snapd sudo systemctl enable --now snapd.socket

Включение поддержка Snap в дистрибутивах OpenSuse

Официально Snapd не включен в OpenSuse, с помощью команд ниже вы сможете установить его на Tumbleweed.

sudo zypper addrepo http://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_42.2/ snappy sudo zypper install snapd

Как только Snapd будет успешно установлен из репозиториев сообщества, не забудьте включить его с помощью команды:

sudo systemctl enable --now snapd.socket

Основные команды Snap

При работе с приложениями Snap вам необходимо будет запомнить несколько команд, которые будут помогать вам выполнить различные (иногда весьма важные) действия.

Поиск

Рано или поздно вы захотите найти какое-нибудь приложение, а если быть точнее, Snap-версию этого приложения. Следующая команда поможет вам в этом:

sudo snap find libreoffice

snap1

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

После того, как вы найдете нужную программу, вам необходимо будет ее установить. Для этого надо ввести эту команду:

sudo snap install (snap_name)

Список установленных Snap-приложений:

Далее вы сможете найти ее в этом списке:

Обновление Snap-пакета до последней версии

Приложения Snap обновляются автоматически, однако если это по каким-то причинам не произошло, вы можете использовать эту команду:

sudo snap refresh (snap_name)

Удаление Snap-приложения

Чтобы удалить приложение Snap используйте следующую команду:

sudo snap remove (snap_name)

Выводы

В различных дистрибутивах Linux нет единого способа установки приложений. Разработчикам приходится собирать разные пакеты для каждого отдельного семейства дистрибутивов, что отнимает у них больше времени и сил. Snap мог бы стать отличным решением этой, и еще ряда других (связанных с отсутствием зависимостей и библиотек) проблем.

Источник

Оцените статью
Adblock
detector