...

Программа снап что это такое

Ubuntu snap – что это такое и с чем его едят?

Относительно недавно в Ubuntu появился новый инструмент — снапы (от англ. snap), но что это такое и как их использовать знают далеко не все пользователи.

Введение в снапы

Представим вполне реальную ситуацию. Пользователь устанавливает самую новую версию Ubuntu, пусть это будет версия 16.04 — именно в ней и появились впервые снапы по умолчанию. По определенным причинам пользователь отключает обновления. Такая ситуация не надумана. Мы все знаем, что после обновления системы Ubuntu, к сожалению, не всегда работает корректно и даже не всегда загружается.

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

Почему? Да потому что его дистрибутив устарел. для установки приложения нужны новые версии библиотек, а для их установки нужно обновить уже установленные пакеты. Иногда процесс настолько масштабный, что приходится обновлять дистрибутив. А ведь мы знаем, что пользователь не хочет этого делать по ряду причин, да и это опасно: система может быть разрушена нарушения связей между программами и библиотеками.

Вторая ситуация. Пусть у пользователя самая новая версия дистрибутива (на данный момент — это 18.10) — чтобы никто не упрекнул нас в надуманности ситуации. Мы знаем, что у традиционных пакетов есть зависимости и конфликты. Иногда нельзя установить то или иное приложение, поскольку его библиотеки конфликтуют с библиотеками уже установленными в системе.

Обе проблемы настолько обширны, что разработчики Ubuntu изобрели снапы. Все мы знакомы с понятием пакета. Пакет содержит саму программу, а также различные вспомогательные файлы — документацию, ресурсы (картинки, например), файлы локализации, сценарии Но пакет не содержит всего, что нужно для работы этой программы в системе. Например, если программе для работы нужна библиотека GL, то просто в пакете «прописывается» зависимость — нужно установить пакет для работы этого пакета. При установке программы менеджер пакетов (apt) производит разрешение зависимостей — устанавливает все необходимые для работы этой программы пакеты.

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

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

Snap-пакеты в Linux. Что это и как с ними работать

Snap пакеты

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

Snap пакеты также называют «снапами».

Так как идея Snap пакетов имеет множество преимуществ, снапы быстро стали популярными и теперь используются не только в Ubuntu, но и в других дистрибутивах Linux: Debian, openSUSE, Arch Linux, Gentoo, Fedora и др.

Что такое Snap-пакет

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

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

Когда вы устанавливаете в систему приложение из Snap-пакета, то установка не влияет на другие пакеты и приложения. То есть такое приложение работает в своей «программной среде», но при этом оно может взаимодействовать с другими программами в системе.

Система управления Snap-пакетами поддерживает автоматическое обновление установленных в системе Snap-пакетов.

Установка поддержки Snap

Для управления Snap-пакетами в Linux используется демон snapd. Для его установки необходимо установить пакет — snapd.

Пользователь использует клиент snap для управления пакетами. Клиент snap входит в состав пакета snapd.

Установка поддержки Snap в Ubuntu Linux

В новых версиях Ubuntu поддержка Snap уже включена. Если это не так, то для установки Snap в Ubuntu Linux выполните команду:

sudo apt install snapd

Аналогично выполняется установка в Debian, Linux Mint, Elementary OS и других Ubuntu/Debian-based дистрибутивах.

Установка поддержки Snap в Fedora

sudo dnf install snapd sudo ln -s /var/lib/snapd/snap /snap

После установки выйдите и войдите в систему.

Установка поддержки Snap в Arch Linux

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

Работа со Snap-пакетами

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

Для установки пакетов используется команда snap install имя_пакета

Пример установки графического редактора GIMP из Snap-пакета:

snap install gimp

После ввода команды будет открыто окно для ввода пароля, так как требуются привилегии root-пользователя. Или используйте sudo:

sudo snap install gimp

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

Для обновления пакетов используется команда snap refresh

Обновление всех установленных пакетов:

snap refresh

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

snap refresh gimp

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

Для удаления пакетов используется команда snap remove имя_пакета

snap remove gimp

Просмотр установленных пакетов

Для просмотра списка установленных пакетов используется команда snap list

snap list

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

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

snap find gimp

Поиск выполняется не только по имени пакета, но и по описанию, поэтому можно использовать произвольный запрос:

snap find "photo editor"

Информация о пакете

Для получения информации о каком-либо пакете используется команда snap info имя_пакета

snap info gimp

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

Если по каким-то причинам вы хотите отменить обновления, которые были выполнены над каким-либо Snap-пакетом, то можно использовать команду snap revert имя_пакета , чтобы вернуть пакет к предыдущей версии.

snap revert gimp

Временно отключить пакет

Чтобы временно отключить пакет используется команда snap disable имя_пакета

snap disable gimp

Чтобы снова сделать пакет доступным используется команда snap enable имя_пакета :

snap enable gimp

Запуск Snap-пакетов

Для запуска Snap-пакета можно использовать команду snap run имя_пакета

snap run gimp

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

Заключение

Мы кратко рассказали о том, что представляют из себя Snap-пакеты и как с ними работать. Snap-пакеты не единственные представители подобного типа пакетов в Linux. Также популярны пакеты AppImage и Flatpak.

“Снапы” – что это такое и с чем их едят? Ставим программы, которых нет в вашем дистрибутиве Linux в один клик

«снапы» в Linux что это такое и с чем их едят

Админ в маленьком городе

Любой пользователей Linux хоть раз сталкивался с ситуацией, когда не получается установить нужную программу в виду отсутствия необходимых библиотек в дистрибутиве, либо у вас установлены не те версии. Всё это может вылиться в такие танцы с бубном, которые порой заканчиваются переустановкой системы, а то и вовсе переходом на другой дистрибутив Linux.

Для решения данной проблемы придуманы “снапы” (snaps) и сегодня, на примере установки пакета Remmina в новый дистрибутив Deepin Linux, я о них и расскажу.

Что такое “снапы” (snaps) и чем они отличаются от традиционных пакетов DEB или RPM

Перейду сразу к сути, так как короткий формат заходит лучше и быстрее. В отличие от традиционных пакетов DEB или RPM, кроме самой программы “снап” содержит все необходимые для ее работы библиотеки. Можно сказать, что “снапы” являются более универсальным решением для установки программ в различные дистрибутивы Linux (подробнее о snap можно почитать на официальной страничке проекта).

Конечно, за такую универсальность приходится расплачиваться гораздо большими размерами пакетов и не получится экономить место на диске. По сути, одну и ту же библиотеку нужно устанавливать несколько раз. Зато такое решение позволяет максимально изолировать программы друг от друга и запускать свежие версии приложений в устаревших системах или наоборот, когда используете только что вышедший или бета-версию дистрибутива, для которых разработчики их ещё не адаптировали.

К примеру, не так давно я обозревал Deepin Linux V23 Beta, в котором не было привычного менеджера для работы с удаленным рабочим столом по протоколу RDP (приложение remmina). Давайте его и поставим.

Первым делом нужно установить snapd (в свежих версиях Ubuntu, начиная с 16.04 snapd уже установлен):

sudo apt install snapd

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

Попробуем теперь установить снап remmina, для чего выполним единственную команду в терминале:

sudo snap install remmina

Как видите, процесс установки “снапов” по сложности ничем не отличается от пакетов DEB или RPM. Забыл сказать что все snaps хранятся в отдельной папке /snap (местоположение тоже зависит от дистрибутива). Так что не стоит переживать, что со временем в системе у вас образуется “помойка” из кучи библиотек.

Для поиска доступных снапов можно ввести команду:

Просмотреть установленные снапы и обновить их можно командами snap list и snap resresh:

snap list
sudo snap resresh

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

Подписывайтесь на канал
Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

При подготовке материала использовались источники:
https://www.xelent.ru/blog/snapy-v-ubuntu-chto-eto-takoe-i-s-chem-ego-edyat/
https://pingvinus.ru/note/snap
https://mdex-nn.ru/page/snap-v-linux-chto-eto-takoe.html

Добавить комментарий