Коротко о snap.
Snap - это пакет приложения для Linux систем, который легко устанавливать без дополнительных зависимостей.
Вся подробная документация (на английском языке) о snap находится здесь:
Зачем вообще нужна ещё одна система для установки приложений?
В отличие от привычных deb-пакетов и rpm-пакетов, snap пакеты несут в себе все зависимости. То есть, когда мы устанавливаем deb-пакет или rpm-пакет, то предполагается, что все зависимости мы скачаем из подключенных репозиториев системы.
Если вы поинтересуетесь темой, сколько существует всевозможных дистрибутивов Linux, для разработчика это проблема выпускать под весь этот зоопарк свой софт, а пользователю зачастую приходится самому решать проблему с отсутствующей зависимостью.
Какой бы крутой и быстрой не была бы ваша операционная система, все решает количество написанного для нее ПО и легкость его установки. Поэтому и был сделан новый инструмент, который бы облегчил бы жизнь как разработчиков, так и пользователям.
Один из минусов - это то, что snap пакеты занимают больше места на диске, так как содержат в себе все зависимости.
Установка поддержки snap пакетов.
Snap уже предустановлен в системе, начиная с Ubuntu 16.04. Ничего дополнительно устанавливать не требуется.
Огромное количество дистрибутивов уже поддерживают snap: Arch Linux, CentOS, Debian, Deepin, Elementary OS, Fedora, GalliumOS, KDE Neon, Kubuntu, Linux Mint, Lubuntu, Manjaro Linux, openSUSE, Parrot Security OS, Raspbian, Solus, Ubuntu, Xubuntu, Zorin OS.
Если у вас не Ubuntu, то перейдите по ссылке: https://docs.snapcraft.io/installing-snapd и следуйте инструкции, выбрав ваш дистрибутив.
Обычно, достаточно установить службу snapd из репозитория вашего дистрибутива, которая отвечает за работу snap приложений, к примеру на Fedora:
Проверка работоспособности snap в системе.
Проверяем, что snap работает нормально в вашей ОС следующей командой:
Если все хорошо, то увидете в консоле версию snap и snapd:
Управление snap пакетами.
Давайте посмотрит на то, как в терминале управлять snap пакетами. Если написать:
и дважды нажать клавишу TAB (автодополнение), то мы увидим сколько же команд у данного инструмента:
В рамках данной статьи мы рассмотрим самые общие и необходимые.
Поиск snap пакетов.
Искать snap пакеты можно с помощью команды в терминале:
Если знаете полностью название программы, к примеру, давайте найдем Inkscape, шикарный графический инструмент для создания и редактирования векторной графики:
Но можно искать программы и по части названия, попробуем найти музыкальный плеер Clementine:
А если требуется поискать по нескольким словам, то надо заключать искомую фразу в кавычки:
В колонке Name написано правильное название snap пакета, которое нужно вписывать в команду установки.
Галочка ✓ в колонке Publisher означает, что этот издатель проверенный. К примеру, выше на скриншоте означает, что, компания JetBrains официально добавила свои инструменты разработки в snap store (хранилище snap пакетов).
Установка snap пакетов.
В общем виде команда установки snap пакета выглядит следующим образом:
К примеру, мы нашли с помощью команды find из предыдущего пункта приложение Postman (для тестирования API), смотрим на колонку Name, копируем название пакета и вставляем его в команду установки:
Вот так выглядит установка snap пакета:
Не забывайте про автодополнение по клавише Tab.
Автодополнение работает и при написании названия программы:
- при однократном нажатии будет дописано полное название приложения (если нет похожих);
- при двойном появится список всех доступных пакетов с похожими названиями.
Теперь ярлык установленной программы можно найти среди других программ.
Типы snap пакетов.
Есть два типа snap пакетов:
- Strict - большинстов пакетов, которые изолированны от основной системы. Им для доступа к системным ресурсам требуется разрешения. Про то как настроить разрешения, будет чуть ниже в статье.
- Classic - эти пакеты получают доступ ко всем ресурсам системы, то есть как обычные системные пакеты. При их установке требуется флаг --classic.
К примеру, многие IDE (интегрированные среды разработки) являются классическими snap пакетами.
Если мы попытаемся установить IntelliJ IDEA обычным способом:
то получим ошибку:
Выдается предупреждение, что этот пакет является классическим и имеет доступ ко всем ресурсам системы, и если мы хотим его установить, то надо использовать флаг --classic.
Указываем флаг и пробуем установку:
Теперь всё ок:
Старайтесь не устанавливать классические snap пакеты от непроверенных разработчиков (без галочки).
При поиске в колонке Notes можно узнать, является ли snap пакет классическим:
Просмотр полной информации о snap пакете.
Чтобы посмотреть полную информацию о пакете, нужно выполнить следующую команду:
К примеру, давайте посмотрим информацию о пакете postman:
Вывод списка установленных snap пакетов.
Чтобы отобразить список всех установленных snap пакетов в систему, введите в терминале следующую команду:
Обновление snap пакетов.
Все snap пакеты автоматически обновляются. Проверка происходит 4 раза в день, в этом можно убедиться, выполнив следующую команду:
В следующей статье разберем подробнее данные настройки автоматического обновления.
Чтобы вручную обновить все snap пакеты, нужно ввести следующую команду в терминале:
Чтобы обновить какой-то один пакет:
К примеру:
Вот как это выглядит:
Удаление snap пакетов.
В общем виде команда для удаления snap пакета выглядит следующим образом:
Например, удалим приложение postman:
Выключение и включение snap пакетов.
Если не хотите удалять какие-то приложения, то их можно просто отключить. В этом случае пропадет ярлык приложения и оно не будет обновляться. И в любой момент можно будет его снова включить. Таким образом, нам не нужно будет его скачивать по новой и устанавливать.
Чтобы отключить какое-либо snap приложение, используется следующая команда:
К примеру:
В любой момент можно снова включить snap пакет, выполнив следующую команду в терминале:
Например:
Вот как это выглядит:
Магазины приложений snap пакетов.
То, что можно управлять snap пакетами - это круто, но простому пользователю Linux нужны нормальные магазины приложений. К примеру, как GooglePlay на Android или как App Store на iOS.
Давайте посмотрим, что может предложить нам Linux в плане магазинов для установки snap пакетов.
Snapcraft Store - веб версия магазина snap приложений.
Данный магазин приложений доступен по адресу:
К сожалению, пока нет локализации, то есть, перевода на другие языки кроме английского. Но может в будущем это будет исправлено.
Можно искать по имени приложения, или просто просматривать по категориям. На странице какого-либо приложения, можно посмотреть скриншот окна приложения, детальную информацию.
Чтобы установить данное приложение, нужно нажать кнопку Install:
Можно скопировать консольную команду установки данного snap пакета. Либо на системе Ubuntu нажать кнопку "View in Desktop store", тогда будет открыт "Менеджер приложений Ubuntu", в котором можно уже установить выбранный snap пакет:
Менеджер приложений Ubuntu или Gnome Software.
В Ubuntu Менеджер приложений Ubuntu является Gnome Software. И подключен плагин к нему, который позволяет искать, просматривать, устанавливать и удалять snap пакеты.
На другой операционной системе с оболочкой рабочего стола Gnome, вам нужны следующие пакеты:
В Ubuntu 18.04 и выше ничего делать не нужно дополнительно, всё уже преднастроено за вас.
Просто открываем и ищем приложения, к примеру, поищем vlc:
В "Подробностях" можно увидеть в "Источнике", что приложение будет установлено из Snap Store.
На вкладке "Установлено" также будут видны установленные snap пакеты:
Если перейти на страницу установленного приложения, можно не только "Запустить" и "Удалить", но и настроить разрешения (Permissions) данного snap пакета:
Магазин Snappy или Snap Store.
Согласитесь, что предыдущие два магазина приложений не совсем удобные:
- В первом случае мы просто увидим консольную команду или откроем в Gnome Software (Менеджере приложений Ubuntu).
- Во втором случае нужно окружение рабочего стола Gnome и кроме того, в нем ищутся не только лишь snap пакеты, а все пакеты приложений из всех подключенных репозиториев.
Поэтому есть Магазин Snappy, исключительно для управления snap пакетами:
Установить его можно по адресу:
https://snapcraft.io/snap-store
или выполнив следующую команду в терминале:
После установки будет создан ярлык данного приложения.
Функционал похож на Менеджер приложений Ubuntu, только в этом магазине нет других пакетов, кроме snap.
Вот и всё.