Snap что за программа

В данной статье поговорим о snap пакетах для установки приложений, о том как их искать, устанавливать, обновлять и удалять.

  • Коротко о snap.
  • Установка поддержки snap пакетов.
  • Проверка работоспособности snap в системе.
  • Управление snap пакетами.
  • Поиск snap пакетов.
  • Установка snap пакетов.
  • Типы snap пакетов.
  • Просмотр полной информации о snap пакете.
  • Вывод списка установленных snap пакетов.
  • Обновление snap пакетов.
  • Удаление snap пакетов.
  • Выключение и включение snap пакетов.
  • Snapcraft Store — веб версия магазина snap приложений.
  • Менеджер приложений Ubuntu или Gnome Software.
  • Магазин Snappy или Snap Store.

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

Вся подробная документация (на английском языке) о snap находится здесь:

Зачем вообще нужна ещё одна система для установки приложений?

/Воскрешаем Snap camera/ простой гайд для вебкамок

В отличие от привычных 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:

sudo dnf install snapd

Проверка работоспособности snap в системе.

Проверяем, что snap работает нормально в вашей ОС следующей командой:

snap version

Если все хорошо, то увидете в консоле версию snap и snapd:

Посмотреть версию snap

105 Snap пакеты. Пример.

Управление snap пакетами.

Давайте посмотрит на то, как в терминале управлять snap пакетами. Если написать:

sudo snap

и дважды нажать клавишу TAB (автодополнение), то мы увидим сколько же команд у данного инструмента:

Список команд snap

В рамках данной статьи мы рассмотрим самые общие и необходимые.

Поиск snap пакетов.

Искать snap пакеты можно с помощью команды в терминале:

snap find искомая фраза>

Если знаете полностью название программы, к примеру, давайте найдем Inkscape, шикарный графический инструмент для создания и редактирования векторной графики:

snap find Inkscape

Поиск snap пакетов

Но можно искать программы и по части названия, попробуем найти музыкальный плеер Clementine:

snap find clement

Поиск snap пакетов

А если требуется поискать по нескольким словам, то надо заключать искомую фразу в кавычки:

snap find «JetBrains IDE»

Поиск snap пакетов

В колонке Name написано правильное название snap пакета, которое нужно вписывать в команду установки.

Галочка ✓ в колонке Publisher означает, что этот издатель проверенный. К примеру, выше на скриншоте означает, что, компания JetBrains официально добавила свои инструменты разработки в snap store (хранилище snap пакетов).

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

В общем виде команда установки snap пакета выглядит следующим образом:

Читайте также:
Программа plus hd что это

sudo snap install имя_пакета>

К примеру, мы нашли с помощью команды find из предыдущего пункта приложение Postman (для тестирования API), смотрим на колонку Name, копируем название пакета и вставляем его в команду установки:

sudo snap install postman

Вот так выглядит установка snap пакета:

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

Не забывайте про автодополнение по клавише Tab.

Автодополнение работает и при написании названия программы:

  • при однократном нажатии будет дописано полное название приложения (если нет похожих);
  • при двойном появится список всех доступных пакетов с похожими названиями.

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

Теперь ярлык установленной программы можно найти среди других программ.

Типы snap пакетов.

Есть два типа snap пакетов:

  • Strict — большинстов пакетов, которые изолированны от основной системы. Им для доступа к системным ресурсам требуется разрешения. Про то как настроить разрешения, будет чуть ниже в статье.
  • Classic — эти пакеты получают доступ ко всем ресурсам системы, то есть как обычные системные пакеты. При их установке требуется флаг —classic.

К примеру, многие IDE (интегрированные среды разработки) являются классическими snap пакетами.

Если мы попытаемся установить IntelliJ IDEA обычным способом:

sudo snap install intellij-idea-community

то получим ошибку:

Типы snap пакетов

Выдается предупреждение, что этот пакет является классическим и имеет доступ ко всем ресурсам системы, и если мы хотим его установить, то надо использовать флаг —classic.

Указываем флаг и пробуем установку:

sudo snap install intellij-idea-community —classic

Типы snap пакетов

Старайтесь не устанавливать классические snap пакеты от непроверенных разработчиков (без галочки).

При поиске в колонке Notes можно узнать, является ли snap пакет классическим:

Типы snap пакетов

Просмотр полной информации о snap пакете.

Чтобы посмотреть полную информацию о пакете, нужно выполнить следующую команду:

snap info имя_пакета>

К примеру, давайте посмотрим информацию о пакете postman:

snap info postman

Просмотр полной информации о snap пакете

Вывод списка установленных snap пакетов.

Чтобы отобразить список всех установленных snap пакетов в систему, введите в терминале следующую команду:

snap list

Вывод списка установленных snap пакетов

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

Все snap пакеты автоматически обновляются. Проверка происходит 4 раза в день, в этом можно убедиться, выполнив следующую команду:

snap refresh —time

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

В следующей статье разберем подробнее данные настройки автоматического обновления.

Чтобы вручную обновить все snap пакеты, нужно ввести следующую команду в терминале:

sudo snap refresh

Чтобы обновить какой-то один пакет:

sudo snap refresh имя_пакета>
sudo snap refresh postman

Вот как это выглядит:

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

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

В общем виде команда для удаления snap пакета выглядит следующим образом:

sudo snap remove имя_пакета>

Например, удалим приложение postman:

sudo snap remove postman

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

Выключение и включение snap пакетов.

Если не хотите удалять какие-то приложения, то их можно просто отключить. В этом случае пропадет ярлык приложения и оно не будет обновляться. И в любой момент можно будет его снова включить. Таким образом, нам не нужно будет его скачивать по новой и устанавливать.

Чтобы отключить какое-либо snap приложение, используется следующая команда:

sudo snap disable имя_пакета>
sudo snap disable supertuxkart

В любой момент можно снова включить snap пакет, выполнив следующую команду в терминале:

sudo snap enable имя_пакета>
sudo snap enable supertuxkart

Вот как это выглядит:

Выключение и включение snap пакетов

Магазины приложений snap пакетов.

То, что можно управлять snap пакетами — это круто, но простому пользователю Linux нужны нормальные магазины приложений. К примеру, как GooglePlay на Android или как App Store на iOS.

Давайте посмотрим, что может предложить нам Linux в плане магазинов для установки snap пакетов.

Snapcraft Store — веб версия магазина snap приложений.

Snap vs Deb.

Многие пользователи начинают интересоваться как технически устроена работа программы в snap пакете. По мере своих сил, как снапкрафтер, пытаюсь ответить на вопросы и вот решил вынести всё в одну статью. Буковок много, но для нетерпеливых в конце статьи есть краткая выжимка. Итак, мир deb против мира snap.

Читайте также:
Expert что это за программа отзывы

Установка программы

В традиционном мире deb пакетов ваша операционная система Linux (далее на примере Debian, Ubuntu. ) обладает списком источников софта, которые называются репозитории (repository). Вы можете поправить эти списки в файлах:

  • Официальные репозитории в файле /etc/apt/sources.list
  • Самостоятельно добавленные в каталоге /etc/apt/sources.list.d/

Устанавливая софт через GUI или CLI, ваш установщик-обновлятор софта вначале скачивает с репозиториев списки доступного в нём софта. Так как софт, как сложный программный продукт, сопровождающими (мантейнерами) традиционно разбивается на логические части, идущие в различных пакетах, то требуется обработать зависимости с помощью ресурсов вашего ПК и этот процесс называется full dependency resolution.

В мире snap источники софта называются хранилищами (store). Формально говоря, понятия зависимости в мире снап не существует. И один снап пакет с программой не зависит от другого снап пакета. Чуть ниже разжую один сложный момент, но в данном месте, чтобы вас не путать, условимся что в истинном понимании слова зависимость такого процесса как full dependency resolution в мире снап — НЕТ!

Установщик-обновлятор deb пакетов скачивает их с репозитория в каталог типа /var/cache/apt/archives/, распаковывает их содержимое по тем абсолютным путям, что идут в пакете деб. После ваших команд типа apt clean пакеты в /var/cache/apt/archives/ будут удалены, так как они выполнили свою задачу и больше не нужны.

Программа внутри snap сжата со всем необходимым ей с помощью squashfs. Пакет скачивается с хранилища в виде snap package в каталог /var/lib/snapd/snaps/ и НИКУДА и НИКОГДА не распаковывается. Пакет с программой банально монтируют в каталог /snap/ИМЯ-ПРОГРАММЫ/ВЕРСИЯ/

В мире deb специально программу дробят на различные пакеты, традиционно выделяя библиотеки/плагины/фреймворки в отдельные пакеты, чтобы делить их с другими программами. Рассмотрим упрощённый классический пример, когда программа А идёт в пакете a-v1.deb и зависит от пакета openssl-v1.deb и программа B из пакета b-v1.deb, зависящая так же от openssl-v1.deb. Говорят о том, что программа А и В де́лят между собой (share) общую библиотеку openssl-v1, а пакет a-v1.deb и b-v1.deb зависят от одного и того же пакета openssl-v1.deb.

В мире снап программу упаковывают вместе с тем, что ей необходимо в загробной жизни для работы. Возьмём вышеописанный пример и посмотрим как это будет выглядеть в мире снап. Внутри пакета a-v1.snap есть файлы программы А и openssl-v1 и внутри пакета В есть файлы программы В и openssl-v1.

Тут многие зададутся вопросом — зачем терять место на диске, таская в каждом снап пакете одно и тоже, отказываясь от классной штуки share?

Когда придумывали формат snap (он эволюционное развитие формата click), хотели прежде всего отказаться от full dependency resolution. Каждый из нас и не раз встречал ситуацию, когда разрешение зависимостей заканчивалось ошибкой.

Вам нужно было пробовать столкнуть ситуацию с места командами sudo apt-get install -f или sudo dpkg —configure -a . Можно было попробовать переустановить пакет с установкой дефолтных настроек — sudo apt-get -o DPkg::options::=—force-confmiss —reinstall install ПАКЕТ_ПРОГРАММЫ Это всё попахивает не надёжностью в мире серверов и десктопа, а в мире мобильных устройств, для которых готовили формат snap, — это смерти подобно. Давайте пока дальнейший отказ Canonical от мобильной ветки и от идеи конвергенции тут не будем затрагивать, ибо snap пакет родом из мобильной сферы, но ею не ограничивается. Итак, фейл при установке пакета на телефоне. Как на маломощном устройстве сталкивать ситуацию с мёртвой точки при вероятной проблеме? Тем более full dependency resolution довольно таки затратная операция для ЦПУ. Нужна была надёжность в лице атомарности:
1) скачал snap пакет.
2) не затратно для CPU примонтировал пакет БЕЗ всяких full dependency resolution, ничего никуда не распаковывая.
3) получил новую версию программы.
4) если новая версия программа будет вызывать проблемы, то можно легко откатиться к старой версии, перемонтировав на старую версию пакета.

Читайте также:
Программа att что это такое

Занятое место

Давайте вопрос с занятым местом разрешим здесь навсегда.

Должен ли снап пакет, хранящий в себе всё что нужно программе + саму программу, быть жирнее аналогичного комплекса из деб пакетов этой же программы? Ответ — нет! Примеры в лице LibreOffice и Krita показали меньший размер в формате снап.

Будут ли множество программ в snap пакетах занимать больше места, чем они же в деб пакетах. Ответ — да. Без механизма share, когда масса программ могут использовать одни и те же компоненты, общий их размер будет больше.

Открою тайну, подлив масла в огонь хейтерам snap! Для поддержки механизма отката и возможности вернуться к старой работоспособной версии, в системе хранится несколько версий snap пакета программы.

Вот мой личный пример на момент написания статьи
ll /var/lib/snapd/snaps/

drwxr-xr-x 1 root root 334 авг 23 10:14 ./ drwxr-xr-x 1 root root 216 авг 25 13:18 ../ -rw-r—r— 1 root root 83349504 июл 4 07:40 core_2312.snap -rw-r—r— 1 root root 84393984 июл 17 15:21 core_2381.snap -rw-r—r— 1 root root 84393984 июл 26 16:47 core_2462.snap -rw-r—r— 1 root root 148656128 янв 5 2017 inkscape_1880.snap -rw-r—r— 1 root root 149258240 фев 16 2017 inkscape_2527.snap -rw-r—r— 1 root root 153026560 авг 10 07:47 inkscape_3080.snap -rw——- 1 root root 209604608 авг 8 08:58 languagetool_x1.snap -rw——- 1 root root 108244992 ноя 28 2016 pac-vs_x1.snap drwxr-xr-x 1 root root 0 ноя 24 2016 partial/ -rw-r—r— 1 root root 85258240 июн 20 13:19 xnsketch_2.snap -rw-r—r— 1 root root 154583040 июн 26 17:12 xnviewmp_1.snap

Что такое Snap, Snap Store и Snapcraft а также зачем они нужны?

Snap

Теперь когда есть некоторое представление об Snap и том что они из себя представляют перейдем к более подробному знакомству с каждым из пунктов.

Snap

С помощью данных пакетов вы можете с легкостью установить множество различных приложений, зависимостей и прочего. Вместо того чтобы производить множество действий и вписывать множество команд достаточно установить и использовать snap в вашей системе. Его можно установить через консоль для использования и далее просто запускать автоматизированную установку приложений и прочего. Это очень облегчает работу с системой и позволяет пользователю заниматься другими делами во время установки.

Snap Store

Если у вас установлена графическая оболочка в вашей системе Linux то вы можете установить данный магазин приложений. В нем есть множество различных приложений это связано с тем что данным магазином пользуется очень большое сообщество. С его помощью установка для вас будет выглядеть также просто как и в Windows из-за чего даже пользователь не знакомый с Linux сможет в нем работать.

Есть некоторый минус в этом магазине а именно использование ОЗУ на постоянной основе, даже если не установлены приложения из него. Это означает что магазин будет использовать некоторое кол-во памяти всегда и устраняется данная проблема только удалением магазина.

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

Snapcraft

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

Заключение

В данной статье мы рассмотрели что такое Snap, Snap Store и SnapCraft а также где это применяется. Многие пользователи используют Snap для автоматизации работы и это действительно является очень удобным (Хоть и есть некоторые минусы). Нами также проверена работа Snap и все было достаточно приемлемо. Советуем и вам попробовать!

Источник: www.mivocloud.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru