Одно из самых обсуждаемых нововведений в 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
После этого можно установить магазин приложений snap-store:
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
Когда установка snap пакетов завершится, программа выдаст соответствующее сообщение. Для установки пакета из определенного канала используйте соответствующую опцию, например --stable, --candidate, --beta или --edge. По умолчанию используется канал stable. Например:
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:
snap list
Многие из программ Ubuntu и Gnome уже поставляются в виде snap и их уже нельзя установить из обычных репозиториев. С помощью опции --all можно посмотреть все доступные версии определённого пакета:
snap list --all opera
6. История изменений
Также вы можете посмотреть историю изменений, внесенных, в систему с помощью этого пакетного менеджера:
snap changes
7. Обновление пакетов
Если вы хотите обновить пакет snap, до более новой версии, выполните команду refresh:
sudo snap refresh opera
Если установлена самая свежая версия вы получите сообщение об ошибке.
Для обновления всех пакетов, установленных в системе просто выполните команду refresh:
sudo snap refresh
Если обновление вам не понравилось, вы можете откатить версию всех пакетов или одного из них до предыдущей. Для этого выполните команду revert:
sudo snap revert opera
Выводы
С момента создания этой технологии прошло много времени и сейчас доступно уже много snap пакетов. Они даже вытеснили многие PPA репозитории, что теперь заброшены и не поддерживаются. Поскольку существует инструмент snapcraft, который делает создание snap пакетов намного проще, все разработчики могут подготовить эти пакеты для своих программ.
А что вы думаете о системе управления пакетами и о самих пакетах snap? Будете использовать систему установки snap чаще чем apt? Напишите в комментариях!
Сережа, очень интересно.
Может быть когда-нибудь эти пакеты можно будет просто положить в какой-нибудь каталог и перестартовать и система его подхватит. Он будет подхватываться системой при старте из определенного каталога. Прошу прощения, я знаю, что в линуксе все файлы, но по старой виндусовой привычке различаю файлы и каталоги.
Прошу прощения, вспомнил свою "древнюю" мысль. Желательно, чтобы все пакеты были укомплектованы полностью всеми необходимыми библиотеками. Тогда их добавление в систему намного упростится. Сейчас новые компьютеры имеют оперативку уже около 16 Гбайт. Программ требующих такого объема памяти пока мало. Диски SSD стали доступны и если надо что-то взять с диска, это уже быстро. Зато установка и удаление программ становится на уровень копирования и переноса. Нечто подобное уже реализовано в PuppyRus-A03: cборка PuppyRus из пакетов Arch Linux.
а мороки-то сколько для создания портированного пакета под pra 😉
Какое "чаще", никогда не буду использовать snap 😉 Зачем в каждом пакете дублирование библиотек и т.д.? Это на убунтомобилах может и приживется, но не на ПК любых видов. imho
А как обновлять библиотеку с найденной уязвимостью в snap пакете?
Дождаться обновления Snap пакета.
snap пакет содержит саму программу, а также все ее зависимости. Я рада этому, я новичок в Ubuntu и с зависмостями столкнулась сразу же и нехваткой опыта куда и что. Ну не ставится зависимость порой и все тут. Куда копать - ищу пробую, конечно этот процесс освоения Ос по накоплению опыта. А тут выбор появился, может это и ряду поль-ей тоже понадобится, все равно отлично!
Поддержу, тоже начинающий и копаться и что то подгружать это тот еще геморрой. без поддержки сам не справишься.
Я так понял что этот способ может быть хорош тем кто устанавливает и настраивает ОС без доступа к интернету. Заранее скачал или создав самостоятельно желаемый snap пакет. В остальных случаях не вижу смысла в этом ни какого
Попробовал установить ту Krita снапом и работает вполне шустро установка
Snap предустановлен в 16.04?
mac oc x использует похожую систему, если я не ошибаюсь и pc-bsd
скачал snap пакет приложения. как его теперь установить? или нужно с командной строки?
ну написано же из из командной строки sudo snap install имя-пакета
а можно сделать так чтобы программа установленная snap пакетом подхватывала системную цветовую тему оформления?
Вроде snap мне понравился но если надо перейти на другой каталог в монтированном диске то полный облом (не видет их, а доступны только в папке HOME). Поэтому большие проблемы с медиа программами например VLC. Может со временем поправят, хотя мне кажется их придумали и для большей безопастности системы.
Подключить монтируемые диски:
sudo snap connect :removable-media
те.
sudo snap connect vlc:removable-media
Admin:Хорошо пакеты snap универсальны а как собрать rpm пакет из пакета snap ???
У меня libreoffice установился только через snap (sudo snap install libreoffice). Версия: 18.04.1 LTS (Bionic Beaver)". Что до обычного apt, то после запуска libreoffice в терминале:
/usr/lib/libreoffice/program/soffice.bin: symbol lookup error: /usr/lib/x86_64-linux-gnu/liborcus-0.13.so.0: undefined symbol: _ZN5boost9iostreams4zlib8deflatedE
Пробовал установить Вайбер через снап - не запускается((
Apt умеет находить подгружать все зависимости. Зачем тогда snap? Похоже на попытку переманить потоки внимания разработчиков других систем на свой стандарт, чтобы они зависели от Cannonical.
Мне ни идея, ни слоновая и неповоротливая snap-идея не нравится от слова совсем.
Все команды написал, кроме самого главного, того как запустить программу через snap, молодец.
Вот прямо так и запускать как и все другие программы. Можно с помощью главного меню системы. Но если очень хочется можно использовать команду
snap run имя_пакета
.А подскажите есть ли возможность запустить два одинаковых snap пакета, понятно, что на разных портах? Спасибо
Снап, это, конечно, хорошо, но это когда он есть. А команда установки в ЦентОС не работает))) Вот что пишет:Отсутствуют совпадения для аргумента: snapd
Ошибка: Совпадений не найдено: snapd
Добрый день, столкнулся с проблемой заполнения loop-разделов, созданными snap-ом. Подскажите как разрешить ситуацию? разделы забиты и некоторые программы не запускаются:
/dev/loop1 243M 243M 0 100% /snap/chromium/1421
/dev/loop21 119M 119M 0 100% /snap/chromium/1424
/dev/loop12 291M 291M 0 100% /snap/vlc/1700
/dev/loop9 50M 50M 0 100% /snap/snap-store/467
/dev/loop11 44M 44M 0 100% /snap/riseup-vpn/161
Программы из Snapa отсутствуют в меню приложений. При запуске из Менеджера приложений или через "snap run имя_пакета" - запущенную не прикрепить в Избранное, там только пункты "Все окна" и "Завершить". 18.04.5 LTS
Привет парни!
Этот snap - полный бред.
Вот дожился. Наконец таки установил себе Линукс, чтобы в нем работать. И тут нововведение. Я как обыватель, знал всегда что в Линуксе фишка в пакетах, что библиотеки не тащатся по 10 раз подряд. А теперь получается этот snap - обычный exe файл установки для windows. Фишка линукса теряется вообщем. А геморр состоит в том, что теперь часть программ обычно устанавливается, часть snap. и это печально.
Установил оперу. и теперь куча мусора от этого snap. Вопрос глобальный. Можно ли каким-то образом поставить все программы, котоорые нужны, без этого долбанного snap или же уже нет?
Все программы ставил из Менеджера приложений ubuntu
+1
Всем привет. У меня через SNAP установлен rocket chat. Кто-нибудь знает,
как добавить сертификаты. Мне нужно чтобы чат через https ходил?