Snap — универсальные пакеты для любого дистрибутива Linux. Это самая полная инструкция как их устанавливать, запускать и где брать программы и игры в этом формате.
Зачем вообще нужна ещё одна система для установки приложений?
Какой бы крутой и быстрой не была бы ваша операционная система, все решает количество написанного для нее ПО и легкость его установки. Поэтому и был сделан новый инструмент, который бы облегчил бы жизнь как разработчиков, так и пользователям.
Обычно в большинстве дистрибутивов надо устанавливать приложения из DEB и RPM пакетов. Такие пакеты содержат саму программу, но не включают зависимости, которые требуются для запуска данного приложения.
В отличие от привычных deb-пакетов и rpm-пакетов, snap пакеты несут в себе все зависимости.
То есть, когда мы устанавливаем deb-пакет или rpm-пакет, то предполагается, что все зависимости мы скачаем из подключенных репозиториев системы.
Но существует огромное количество всевозможных дистрибутивов Linux, как и их версий, и для разработчика это огромная проблема выпускать под весь этот зоопарк свой софт, а пользователю зачастую приходится самому решать проблему с отсутствующей зависимостью.
Файлы Snap-пакетов, имеющие расширение «.SNAP», больше похожи на контейнеры. Приложения из этих пакетов являются самодостаточными уже скомпилированны, содержат все библиотеки, необходимые для их функционирования, и исполняются в изолированном защищенном окружении. Они устанавливаются в отдельные директории и не конфликтуют с основными компонентами системы. Поэтому все заработает сразу в любом дистрибутиве Linux который поддерживает Snap.
Когда вы устанавливаете в систему приложение из Snap-пакета, то установка не влияет на другие пакеты и приложения. То есть такое приложение работает в своей «программной среде», но при этом оно может взаимодействовать с другими программами в системе.
Преимущества Snap:
- Создаются один раз и для всех поддерживающих платформ. Помимо всего прочего, Snap-пакеты содержат все зависимости и библиотеки, а это значит, что каких-либо проблем с запуском и использованием почти не будет
- Поддерживает автоматическое обновление установленных в системе Snap-пакетов
- Один Snap для всего: дистрибутив Linux, сервер или облако
- Доступность разных версий: вы в любой момент можете переключаться между стабильной, бета и даже ежедневной версиями любого Snap-приложения
- Безопасность: Snap-приложения всегда запускаются в изолированной среде у которой нет доступа к остальной части вашей операционной системы
- Система управления Snap-пакетами
Один из минусов — это то, что snap пакеты занимают больше места на диске, так как содержат в себе все зависимости.
- Установка поддержки Snap в
- Работа со Snap-пакетами
- Проверка работоспособности в системе
- Поиск в базе
- Установка
- Типы пакетов
- Удаление
- Просмотр установленных
- Информация о пакете
- Обновление
- Возврат к более ранней версии snap-пакета (Откат)
- Выключение и включение snap пакетов
- Просмотр последних изменений в пакете
- Запуск установленного пакета
- Список запущенных служб
- Перезапуск, запуск и приостановление snap-служб
- Конфигурация переменных snap-пакета
- Скачивание и установка snap-приложений OFFline
- Магазины приложений snap-пакетов
- Заключение
Установка поддержки Snap
Сейчас поддержка Snap пакетов есть в большинстве дистрибутивов, но если по какой-либо причине ее у вас нет, то вы можете ее добавить.
Установка поддержки Snap в Ubuntu, Kubuntu, Lubuntu, Xubuntu, Debian, Linux Mint, Elementary OS, GalliumOS, Kali Linux, KDE Neon, Parrot Security OS, Pop!_OS, Raspbian, Zorin OS и подобных
В новых версиях Ubuntu поддержка Snap уже включена. Если это не так, то для установки Snap выполните команду:
sudo apt update sudo apt install snapd systemctl enable --now snapd apparmor
Аналогично выполняется установка в Debian, Linux Mint, Elementary OS и других Ubuntu/Debian-based дистрибутивах.
Установка поддержки Snap в Arch Linux
из GIT репозитория
git clone https://aur.archlinux.org/snapd.git cd snapd makepkg -si
или из AUR репозитория:
yaourt -S snapd
Далее необходимо его активировать:
sudo systemctl enable --now snapd.socket sudo ln -s /var/lib/snapd/snap /snap
После этого необходимо перезагрузить систему.
Установка поддержки Snap в CentOS 7
sudo yum install epel-release sudo yum install snapd sudo systemctl enable --now snapd.socket sudo ln -s /var/lib/snapd/snap /snap
После этого необходимо перезагрузить систему.
Установка поддержки Snap в CentOS 8
sudo dnf install epel-release sudo dnf upgrade sudo yum install snapd sudo systemctl enable --now snapd.socket sudo ln -s /var/lib/snapd/snap /snap
После этого необходимо перезагрузить систему.
Установка поддержки Snap в Fedora
sudo yum install kernel-modules sudo dnf install snapd sudo ln -s /var/lib/snapd/snap /snap
После этого необходимо перезагрузить систему.
Установка поддержки Snap в Manjaro Linux
sudo pacman -S snapd sudo systemctl enable --now snapd.socket
После этого необходимо перезагрузить систему.
Установка поддержки Snap в openSUSE
sudo zypper removerepo snappy sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.0 snappy sudo zypper --gpg-auto-import-keys refresh sudo zypper dup --from snappy sudo zypper install snapd sudo systemctl enable --now snapd sudo systemctl enable --now snapd.apparmor
После этого необходимо перезагрузить систему.
Установка поддержки Snap в Red Hat Enterprise Linux (RHEL) 7
sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo subscription-manager repos --enable "rhel-*-optional-rpms" --enable "rhel-*-extras-rpms" sudo yum update sudo yum install snapd sudo systemctl enable --now snapd.socket sudo ln -s /var/lib/snapd/snap /snap
После этого необходимо перезагрузить систему.
Установка поддержки Snap в Red Hat Enterprise Linux (RHEL) 8
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf upgrade sudo yum install snapd sudo systemctl enable --now snapd.socket sudo ln -s /var/lib/snapd/snap /snap
После этого необходимо перезагрузить систему.
Установка поддержки Snap в Solus
sudo eopkg up sudo eopkg install snapd
После этого необходимо перезагрузить систему.
Работа со Snap-пакетами
Теперь рассмотрим как же работать с этими пакетами.
Проверка работоспособности snap в системе
Для начала необходимо проверить ее работоспособность. Для этого выполним команду:
snap version
Если все хорошо, то вы увидите в консоли версию snap и snapd:
А если написать:
sudo snap
и дважды нажать клавишу TAB (автодополнение), то мы увидим сколько же команд у данного инструмента:
Сейчас мы рассмотрим самые общие и необходимые из них.
Поиск пакетов
Для получения списка всех доступных Snap-пакетов следует открыть окно эмулятора терминала и выполнить следующую команду:
snap find
Если вам нужно найти определенный пакет по имени, вы можете просто добавить поисковый запрос после приведенной выше команды:
snap find <имя_пакета>
Искать можно как по полному названию так и по его части
snap find vl
А также искать по описанию, поэтому можно использовать произвольный запрос. Если требуется поискать по нескольким словам, то надо заключать искомую фразу в кавычки:
snap find "JetBrains IDE"
Установка пакетов
Для установки пакетов используется команда snap install <i><имя_пакета></i>
snap install shout
Не забывайте про автодополнение по клавише Tab.
Автодополнение работает и при написании названия программы:
- при однократном нажатии будет дописано полное название приложения (если нет похожих);
- при двойном появится список всех доступных пакетов с похожими названиями.
После установки, ярлык установленной программы можно найти среди других программ. Но данная функциональность может зависеть от конкретной системы.
Типы пакетов
Есть два типа snap пакетов:
- Strict — большинство пакетов, которые изолированны от основной системы. Им для доступа к системным ресурсам требуется разрешения. Про то как настроить разрешения, будет чуть ниже в статье.
- Classic — эти пакеты получают доступ ко всем ресурсам системы, то есть как обычные системные пакеты. При их установке требуется флаг —classic.
К примеру, многие IDE (интегрированные среды разработки) являются классическими snap пакетами.
Если мы попытаемся установить IntelliJ IDEA обычным способом:
snap install intellij-idea-community
Выдается предупреждение, что этот пакет является классическим и имеет доступ ко всем ресурсам системы, и если мы хотим его установить, то надо использовать флаг —classic.
Указываем флаг и пробуем установку:
snap install intellij-idea-community --classic
Старайтесь не устанавливать классические snap пакеты от непроверенных разработчиков (без галочки).
При поиске в колонке Notes можно узнать, является ли snap пакет классическим
Удаление пакетов
Для удаления пакетов используется команда snap remove <i><имя_пакета></i>
snap remove gimp
Просмотр установленных пакетов
Для просмотра списка установленных пакетов используется команда:
snap list
Информация о пакете
Для получения информации о каком-либо пакете используется команда snap info <<i>имя_пакета></i>
snap info postman
Обновление
Все snap пакеты автоматически обновляются. Проверка происходит 4 раза в день, в этом можно убедиться, выполнив следующую команду:
snap refresh --time
Обновление всех установленных пакетов:
snap refresh
Обновление одного пакета:
snap refresh gimp
Возврат к более ранней версии snap-пакета (Откат)
Если по какой-то причине вам не понравилось последнее обновление snap-пакета, вы можете вернуться к предыдущей версии с помощью следующей команды:
snap revert
Такая команда вернет необходимую версию snap-пакета и данные, соответствующие ПО. Если предыдущая версия snap-пакета получена из другого канала, она все равно установится, и канал останется прежним.
snap revert gimp
Выключение и включение snap пакетов
Если не хотите удалять какие-то приложения, но они в данный момент вам не нужны, то их можно просто отключить. В этом случае пропадет ярлык приложения и оно не будет обновляться. В любой момент можно будет его снова включить. Таким образом, нам не нужно будет опять его скачивать и устанавливать.
Чтобы отключить какое-либо snap приложение, используется следующая команда:
snap disable <имя_пакета>
Например:
snap disable supertuxkart
В любой момент можно включить snap пакет и сделать его снова доступным выполнив следующую команду в терминале:
snap enable <имя_пакета>
Например:
snap enable supertuxkart
Просмотр последних изменений в пакете
Выполните следующую команду для просмотра списка изменений состояния системы. Она выводит список Snap-пакетов, которые вы недавно устанавливали, обновляли и удаляли вместе с метками времени, соответствующими каждой из этих операций.
snap changes
Запуск установленного пакета
Для запуска Snap-пакета можно использовать команду snap run <i><имя_пакета></i>
snap run gimp
Также приложения, установленные через Snap, можно запускать через главное меню вашего дистрибутива или лаунчер. Но данная функциональность может зависеть от конкретной системы.
Список запущенных служб
Чтобы просмотреть все установленные и запущенные снепы используйте:
snap services
Или посмотреть статус конкретного приложения:
snap services lxd Service Startup Current lxd.daemon enabled active
Перезапуск, запуск и приостановление snap-служб
Службы можно перезапустить с помощью команды:
snap restart
Все службы, необходимые для работы снепов, будут перезагружены по умолчанию:
Перезапуск конкретной службы:
snap restart lxd.daemon Restarted.
Чтобы остановить запущенную службу, используйте следующую команду:
snap stop lxd.daemon Stopped.
Чтобы запустить ранее остановленную службу, используйте следующую команду:
snap start lxd.daemon Started.
Конфигурация переменных snap-пакета
Некоторые снепы, например, работающие в фоновом режиме, выставляют параметры конфигурации, которые можно изменить.
Команды для просмотра и изменения этих параметров конфигураций — snap get
и snap set
.
Выставленные параметры конфигурации установленного снеп можно посмотреть с помощью:
snap get <имя_пакета>
Чтобы изменить параметры конфигурации, задайте команду «snap set»:
snap set <имя_пакета> key=value
Скачивание и установка snap-приложений OFFline
Установить snap-приложения можно и без подключения к интернету. Для этого необходимо скачать файлы snap-приложений/пакетов, задав следующую команду:
snap download <имя_пакета>
Эта команда загрузит .assert и .snap файл. Скопируйте их на другую Linux систему, которая не имеет подключения к интернету. Затем установите загруженный файл с помощью следующей команды:
snap ack <имя_пакета.assert> snap install <имя_пакета.snap>
Магазины приложений snap пакетов
То, что можно управлять snap пакетами из терминала, это конечно хорошо, но простому пользователю Linux больше нужны нормальные магазины приложений. К примеру, как GooglePlay на Android или как App Store на iOS.
Давайте посмотрим, что может предложить нам Linux в плане магазинов для установки snap пакетов.
Snapcraft Store — веб версия магазина snap приложений
Данный магазин приложений доступен по адресу: https://snapcraft.io/store
К сожалению, пока нет локализации, то есть, перевода на другие языки кроме английского. Но может в будущем это будет исправлено.
Можно искать по имени приложения, или просто просматривать по категориям. На странице какого-либо приложения, можно посмотреть скриншот окна приложения, детальную информацию.
Чтобы установить данное приложение, нужно нажать кнопку Install:
Можно скопировать консольную команду установки данного snap пакета. Либо (если у вас система Ubuntu) нажать кнопку «View in Desktop store», тогда будет открыт «Менеджер приложений Ubuntu», в котором можно уже установить выбранный snap пакет:
Менеджер приложений Ubuntu или Gnome Software
Для этого инструмента существует дополнительный плагин, который позволяет искать, просматривать, устанавливать и удалять snap пакеты.
Для этого вам необходимо доустановить его:
sudo apt install gnome-software-plugin-snap
В Ubuntu 18.04 и выше ничего делать не нужно дополнительно, всё уже предварительно настроено за вас.
Просто открываем и ищем приложения, к примеру, поищем vlc:
В «Подробностях» можно увидеть в «Источнике», что приложение будет установлено из Snap Store.
На вкладке «Установлено» также будут видны установленные snap пакеты:
Если перейти на страницу установленного приложения, можно не только «Запустить» и «Удалить», но и
настроить разрешения (Permissions) данного snap пакета:
Магазин Snappy / Snap Store
Согласитесь, что предыдущие два магазина приложений не совсем удобные:
- В первом случае мы просто увидим консольную команду или откроем в Gnome Software (Менеджере приложений Ubuntu).
- Во втором случае нужно окружение рабочего стола Gnome и кроме того, в нем ищутся не только лишь snap пакеты, а все пакеты приложений из всех подключенных репозиториев.
Поэтому есть Магазин Snappy, исключительно для управления snap пакетами:
Установить его можно по адресу: https://snapcraft.io/snap-store
или выполнив следующую команду в терминале:
snap install snap-store
После установки будет создан ярлык данного приложения.
Функционал похож на Менеджер приложений Ubuntu, только в этом магазине нет других пакетов, кроме snap.
Заключение
Мы кратко рассказали о том, что представляют собой Snap-пакеты и как с ними работать. Но это не единственные представители подобного типа пакетов в Linux. Также популярны пакеты Flatpak.
А в этом видео (хотя оно и на английском языке, но все понятно) все показано.
если я правильно понял, сайт скорее мертв, чем жив….. а жаль, ранее был хорош….