Snap linux что это

Обновлено: 04.07.2024

За последние несколько лет Linux очень сильно продвинулся на пути к обычным пользователям. Изменялся и упрощался интерфейс, добавлялись графические утилиты, исправлялись ошибки и недоработки, дистрибутивы становились лучше. Но теперь изменения добрались до системы установки пакетов. Традиционный способ устанавливать программы - загрузка и установка с репозиториев вашего дистрибутива. Причем форматы пакетов, способы развертывания и даже версии библиотек между дистрибутивами очень отличаются. Это не позволяло скачать программу из интернета и запускать ее на любом linux дистрибутиве.

Но за последние пару лет был сделан шаг и в этом направлении. Были созданы портативные приложения, которые устанавливаются одним файлом, вместе со всеми своими зависимостями и поэтому могут работать абсолютно в любом дистрибутиве, независимо от установленных там программ и библиотек. Сначала энтузиастами был разработан формат AppImage, который представляет из себя ISO образ со всеми файлами программы, затем разработчики Gnome переименовали и взялись за развитие своей платформы контейнерного запуска приложений Flatpak, и примерно в то же время компания Canonical реализовала систему установки пакетов без зависимостей - Snap, которая, как и все предыдущие, может использоваться в любом дистрибутиве.

Чем отличается Snap vs Flatpak vs AppImage?

Как видите, в последнее время было создано очень много решений портативных программ Linux и пора разобраться что лучше и что все-таки использовать. В этой статье мы сравним snap vs flatpak vs appimage. Это самые популярные и известные технологии, хотя были и другие. Попытаемся выяснить у кого больше перспектив для развития, но сначала выясним, что представляет из себя каждая из этих технологий.

Что такое Snap?

О Snap пакетах мы слышали уже давно, сначала они использовались для встраиваемых устройств и в качестве механизма обновления Ubuntu для смартфонов. Как заявляют разработчики из Canonical эта технология была создана изначально для того, чтобы предоставить максимальную удобность обновления пользователям Ubuntu и поднять на новый уровень безопасность мобильных приложений. Основная задача - решить проблемы, неразрешимые для deb и rpm пакетов и обеспечить надежное обновление.

Все файлы программы и ее зависимостей упаковываются в один файл, включая исполняемые файлы, файлы конфигурации и нужные библиотеки. В этом плане snap vs flatpack мало чем отличаются. Пакет устанавливается в отдельном каталоге, в домашней папке пользователя и программа может иметь доступ только к этому каталогу. Поэтому программа не может создать проблем в вашей системе, заменив важные файлы других пакетов.

Программа, упакованная в snap, выполняется в изолированном окружении, ей недоступны никакие библиотеки из системы и даже конфигурационные файлы. Это реализуется с помощью профилей AppArmor. Она может работать только с тем, что установлено в пакете. Домашняя папка программы тоже в её директории. Для общения с X сервером, файловой системой, окружением рабочего стола и другими компонентами используются интерфейсы, предоставляемые главным пакетом - ubuntu-core. Если программе не разрешить доступ к этим интерфейсам она не сможет работать. Чтобы предоставить доступ программе к файлам пользователя тоже нужно использовать соответствующий интерфейс - home.

На данный момент Snap пакеты работают кроме Ubuntu, на Arch, Debian и Fedora. Также выполняется подготовка образов для Red Hat, CentOS, Elementary, LinuxMint, Gentoo, OpenSUSE. Более подробно про управление Snap пакетами читайте здесь.

Для создания snap пакетов используется специальный инструмент - snapcraft. Он позволяет относительно легко создать пакет для любой платформы. Для сборки программы нужно описать ее и необходимые зависимости в файле snapcraft.yaml и этот процесс немного сложный. Если сравнивать snap vs AppImage, то там все чуть проще, но и нет такого уровня безопасности. Но в целом это довольно интересная технология, благодаря возможностям безопасности.

Что такое AppImage?

Про Appimage мы услышали еще в 2011 году, но тогда программа не набрала популярности несмотря на все ее плюсы по сравнению с традиционными системами упаковки программ.

Здесь, также как и в snap программа упаковывается со всеми своими зависимостями в один файл. Никаких дополнительных файлов, одно приложение - один файл. Для запуска программы не нужно ничего устанавливать, просто скачайте программу из интернета, сделайте исполняемой и запустите. Все. Никакие файлы из корневой файловой системы не будут изменены.

Образ Appimage представляет из себя обычный ISO образ, в котором находятся все необходимые компоненты программы, при запуске он автоматически монтируется и выполняется программа. Поскольку для запуска не нужно никакого программного обеспечения в системе, эта технология может использоваться абсолютно в любом дистрибутиве. Хотя для запуска программы не требуются права root, тут уже нет такого уровня безопасности, программа может спокойно работать с файлами пользователя, как и другие обычные программы, а если каких-нибудь библиотек в образе недостает, программа загружает их из системы. Подробнее про AppImage читайте тут.

Для создания AppImage используется утилита appimagetool. Перед использованием инструмента вам необходимо скопировать все файлы и библиотеки, необходимые программе в специальную папку и сделать конфигурационный файл. Если делать сравнение Flatpak vs AppImage, то там все как-то более организовано и не нужно засорять свою систему.

Что такое Flatpak?

Flatpak - это тоже относительно новая система технология портативных приложений, поддерживаемых в любом дистрибутиве, созданная командой разработчиков GNOME. Раньше этот формат пакетов назывался XDG, но потом был переименован во избежание конфликтов. Он разработан, чтобы изолировать приложения от вашей системы и один от другого. Работает все больше похоже на Snap чем на AppImage. Приложение тоже выполняется в изолированном контейнере, что обеспечивает максимальную безопасность. Но подход к библиотекам здесь немного отличается. Они могут находиться в одном пакете вместе с приложением, или же находится в окружениях, общих для нескольких пакетов, такой подход гибче чем snap, и позволяет программе занимать не так много места.

В отличие от Snap, Flatpak ориентирован больше на децентрализацию. Здесь нет одного центрального репозитория или контролирующего органа. Snap пакеты контролируются Canonical, и чтобы добавить свой пакет в репозиторий нужно подписать соглашение. Flatpak работает подобно тому, как PPA в Ubuntu. Вы находите репозиторий, подключаете в систему и можете устанавливать оттуда программы.

Flatpak можно использовать в большинстве дистрибутивов, так же как и Snap. Создавать Flatpack пакеты можно подобным образом, как и snap. Тоже нужно отредактировать файл конфигурации, правда тут все немного проще. Про установку и использование Flatpak читайте здесь.

Выводы

Мы рассмотрели Snap vs Flatpak vs AppImage. Уже сейчас можно, сказать, что AppImage отходит на задний план и гонка за лидерство происходит между Snap и Flatpak. Appimage предоставляет простоту запуска программ, но здесь нет таких важных возможностей, как безопасность, а без этого сейчас никуда. Flatpak разрабатывается командой Gnome, и у них интересная затея, но за Snap взялась компания Canonical, они будут использовать эту технологию не только для обычных компьютеров, но и для серверных решений. Что будет лучше и более удобно пользователям покажет время. А вы используете портативные приложения?


Snap пакеты

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

Так как идея 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 выполните команду:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Одно из самых обсуждаемых нововведений в Ubuntu 16.04 - это новый формат установочных пакетов программного обеспечения - snap. Canonical представила новую систему установки и управления программным обеспечением, она более безопасна и позволяет получить всегда самые последние версии программ.

Ещё одно преимущество Snap пакетов - это доступность не только в Ubuntu, но и в других дистрибутивах. Разработчики могут создать один пакет, который потом можно будет одинаково установить в Ubuntu, Debian, Fedora, CentOS или любом другом дистрибутиве. В этой статье мы рассмотрим как установить пакетный менеджер Snap в вашем дистрибутиве, а также как им пользоваться.

Что такое Snap пакеты?

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

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

В свою очередь Snap пакеты содержат саму программу, а также все её зависимости. Это имеет несколько преимуществ перед обычными deb или rpm пакетами, поскольку теперь программу можно запустить в любом дистрибутиве, а также разработчик может быть уверен, что его программа получает именно необходимые ей версии библиотек.

Установка snap

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

sudo apt install snapd

Установка snap в Fedora или CentOS отличается не сильно:

sudo dnf install snapd

После установки для включения возможности установки классических приложений через snap надо создать символическую ссылку на /var/lib/snapd/snap в корне:

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

sudo snap install snap-store

Или устанавливать пакеты snap через терминал.

Как пользоваться snap

Основы рассмотрели, теперь перейдем к управлению пакетами. Процесс взаимодействия со snap очень похож на apt или dnf, только не надо обновлять репозитории. Все действия выполняются в терминале.

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

Чтобы найти нужный пакет или посмотреть есть ли он в магазине приложений snap используйте команду find. Например:

snap find chromium

Будут выведены все пакеты соответствующие данному критерию, доступные для установки в вашей системе. Если выполнить команду find без параметров, то система выведет несколько рекомендуемых пакетов.

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

Чтобы посмотреть информацию о пакете используйте команду info:

snap info chromium

Здесь выводится информация о том кто создал пакет, а также его описание. Для установки пакетов доступно несколько каналов. Это stable, beta и edge. Первый самый стабильный, второй - тестируемый, а третий - версия для разработчиков. Эта информация тоже выводится внизу вывода команды info. Здесь же выводится версия программы в канале.

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

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

sudo snap install chromium

sudo snap install chromium --edge

По умолчанию приложение может получить доступ только к тем частям системы, к которым у него подключены интерфейсы. Эти подключения устанавливаются автоматически во время установки пакета. Посмотреть их можно командой connections:

snap connections chromium

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

sudo snap install --classic atom

Есть ещё один режим безопасности, при котором приложение получает полный доступ к системе: devmode. Для установки таких программ надо использовать опцию --devmode.

4. Удаление пакета

Удалить snap пакет из системы очень просто. Для этого достаточно использовать команду remove:

sudo snap remove chromium

5. Установленные программы

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

Многие из программ Ubuntu и Gnome уже поставляются в виде snap и их уже нельзя установить из обычных репозиториев. С помощью опции --all можно посмотреть все доступные версии определённого пакета:

snap list --all opera


6. История изменений

Также вы можете посмотреть историю изменений, внесенных, в систему с помощью этого пакетного менеджера:

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

Если вы хотите обновить пакет snap, до более новой версии, выполните команду refresh:

sudo snap refresh opera


Для обновления всех пакетов, установленных в системе просто выполните команду refresh:

sudo snap refresh

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

sudo snap revert opera

Выводы

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

А что вы думаете о системе управления пакетами и о самих пакетах snap? Будете использовать систему установки snap чаще чем apt? Напишите в комментариях!

Ubuntu 21.10

Состоялся релиз дистрибутива Ubuntu 21.10 «Impish Indri». Это не LTS релиз, он будет поддерживаться обновлениями в течение 9 месяцев. Отметим основные изменения в новой версии.

Видео

Наш видео-обзор Ubuntu 21.10.

Ubuntu — самый популярный дистрибутив Linux. Разрабатывается под руководством компании Canonical. Прост в установке и использовании. Использует среду рабочего стола GNOME с частично измененным интерфейсом. Формат пактов: DEB. Пакетный менеджер: APT.

Что нового

Основные изменения в Ubuntu 21.10 связаны с обновлением программ и компонентов системы до более свежих версий.

  • Кодовое имя новой версии «Impish Indri», что можно перевести, как «Озорной Лемур».
  • Ядро Linux 5.13.

Ubuntu 21.10. Экран входа в систему

Ubuntu 21.10. Экран входа в систему

Обновление с Ubuntu 21.04 до Ubuntu 21.10

Текущие пользователи Ubuntu 21.04 могут обновить систему до Ubuntu 21.10, используя штатные средства обновления системы.

Для обновления системы до Ubuntu 21.10 выполните следующие шаги:

  • Формат образа (desktop): ISO.
  • Размер: 2.9GB.
  • Архитектура: AMD64.

Поддерживается Live режим. Установку можно выполнить из Live режима.

Материалы по теме:

Категории:

Новые комментарии

Новое в галерее

Комментарии

" Корзинку нельзя убрать " - :( Вот. А я только начал привыкать к Ubuntu. Такие мелочи печалят, когда ищешь решения. Ну, не знаю. Мне, как-то не везет с Ubuntu! Несколько лет, даже не пытался с ней подружиться, а тут, после выхода 21.10, решил - "дай-ка попробую"! Скачал, установил, даже, все обновил. перезагрузил. А этот "Сволочной лемур" - просто перестал принимать пароль. Моему бешенству и разочарованию Не было предела! Таких "сюрпризов" я не ожидал! Правда, скажу честно, я, даже и не пытался решить проблему. Все "минусы" в совокупности Заставили меня это "горе" снести и я ЗАРЕКСЯ когда-либо ее устанавливать! Загрузка - самая длительная СРЕДИ ВСЕХ ДИСТРИБУТИВОВ. Просто - переходит Все границы. Сплошные СНАПЫ. Даже - смотреть в эту сторону больше не буду. ИМХО. Постоянная ссылка на комментарий Родительский комментарий Вы попали не в то время. история по-настоящему хорошей и удобной бубунты закончилась на 16.04. Как только шатлворт нюхнул шайтан-травы и перевёл своё детище, носящее слоган примерно содержания "линукс в люди", на гном-шелл - всё пошло по бородке того самого гнома.
Хотя я даже поймал какой-никакой, а плюс, с этого, так как в расстроенных чувствах полез искать другой дистр. В итоге пересел на openSUSE, целиком и полностью. Ещё недавно начал шатать Oracle Linux 8, по сему благодарен и рад тому, как сложидисб обстоятельства. Но Unity мне всё ещё не хватает :(
Не берите в голову, если не получается с убунтой. Если получается с другими - то какая разница? Постоянная ссылка на комментарий Родительский комментарий Спасибо! Мне нравится openSuse и ее вариант - роллинг, Но, у меня три винчестера и я не смоог решить вопрос с их автоматическим подключением. Обычные варианты из Плазмы тут не работают! Честно говоря, не знаю, как это решить, иначе уже давно перешел бы на нее! Постоянная ссылка на комментарий Родительский комментарий Не мучайтесьс этими тормазными дистрибутивами, поставь АРЧ и не парься. Постоянная ссылка на комментарий Родительский комментарий Я что-то не понял.
Как-то странно звучит "три винчестера и я не смоог решить вопрос с их автоматическим подключением". У меня на компе 2 штатных HDD(винчестера) и 2 HDD(внешних) "на шнурке" через USB-2 и все в GRUB'е светятся и подключаются без проблем. Или я шо-то не так понял? Постоянная ссылка на комментарий Родительский комментарий Этот вопрос я уже Несколько раз на данном сайте задавал. Поясняю: я не так выразился, они, конечно же, подключаются, но, при переходе с одного на другой - всегда приходится вводить пароль! Это Выбешивает! В Арче я через "Подкдючение внешних носителей" всегда решаю этот вопрос и при перезагрузке Все винчестеры всегда Активированы! В Сюзе это не работает! Постоянная ссылка на комментарий Родительский комментарий Но, пароль же требуется не по прихоти HDD, а только из-за заданой установки в настройках. Или я снова что-то не то понял?
У меня в "кедах" на той же СУСЕ установлено - "запуск под именем" и тип сеанса "Plasma(X11)".Там есть еще и вариант "Wayland", но это уже из другой истории. Постоянная ссылка на комментарий Родительский комментарий Постоянная ссылка на комментарий Родительский комментарий

попробую Вам помочь.
Откройте терминал.
напишите туда:
sudo nano /etc/fstab

не закрывайте. Откройте еще один терминал.

/name
вместо name можете назвать свою папку как угодно, там будет ваш диск.

sudo chmod 0777

/name
опять же в этом имени поставьте своё.
далее вводим:

ищите ваши не подключенные диски. Например sdc1 где нет точки монтирования.
Копируем рядом с ним код uuid (они выглядят примерно так:
cfcabec3-9264-4de0-b1c2-a1e55e526eb2

переключаемся в первый терминал и в конце файла fstab пишем :
UUID=cfcabec3-9264-4de0-b1c2-a1e55e526eb2
вставляйте тот длинный uuid сюда потом не забываем пробел, после пробела пишем /home/user/name
вместо user - ваш пользователь
вмесnо name - вашу созданную папку с вашим именем.
Затем опять пробел или tab
Затем пишем
ext4
если на диске такая файловая система. Если ntfs - пишите ntfs
далее пробел опять же. Пишем
defaults
пробелл
0
пробелл
0

У вас должна получиться длинная строчка, на подобии:
UUID=2d7c5c83-7af0-4b11-acfd-4e68a737f498 /home/bash/hdd1Tb ext4 defaults 0 0

Ctrl+O - Сохраняем. Ctrl+X - выходим.

Вводим для проверки:
sudo mount -a
У вас в домашней папке, которую мы создали ,теперь будет автоматически подключаться ваш диск. Всегда.

Аналогично делайте с другими дисками.

Если в той папке не будет возможность создавать файлы или папки. Тогда нужно еще дать ей право сделать это:
в терминале пишем:
sudo chown -R user:users

/name
где : user - ваше имя пользователя.
users - ваша группа
name - ваше название папки с диском

Всё. Эти манипуляции работают на любом дистрибутиве. Мы только что сделали автоподключение диска при загрузке системы.
Надеюсь понятно объяснил и хоть как-то помог.

Читайте также: