Найти в Дзене

Linux - начинающим

Учимся работать со Snap Snap - это универсальный формат пакетов, созданный компанией Canonical первоначально для Ubuntu, но получивший широкое распространение и в других дистрибутивах. Главной особенностью snap-пакетов является их самодостаточность, они содержат как нужное приложение, так и все основные зависимости к нему, что ускоряет распространение приложений и снижает возможные конфликты с другим ПО. В этой статье мы опишем основные приемы работы со snap для системного администратора и некоторые неочевидные особенности этой системы управления пакетами. К сожалению, многие администраторы, как начинающие, так и опытные крайне негативно относятся к snap, доходя до того, что сразу же удаляют его из системы. При этом разумной аргументации этих действий ими не предоставляется. На наш взгляд - это непрофессиональный подход, хороший специалист не ставит искусственных ограничений для применяемых технологий и умеет играть от сильных сторон, нивелируя слабые. Перед тем, как рассматривать

Linux - начинающим. Учимся работать со Snap

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

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

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

Перед тем, как рассматривать работу со snap мы сделаем краткое отступление и рассмотрим причины, приведшие к появлению snap и аналогичных ему форматов, таких как flatpak или appimage. Традиционно софт в Linux распространяется по принципу конструктора, когда все зависимости приложения являются отдельными пакетами или библиотеками и распространяются отдельно.

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

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

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

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

Но это еще не все. В промышленном применении используются дистрибутивы с долгосрочной поддержкой (LTS), которые гарантируют неизменность основной пакетной базы на протяжении всего срока поддержки, а следовательно, многие библиотеки к концу жизненного цикла успеют порядочно устареть.

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

Классическая ситуация, когда разработчик для внедрения каких-то новых возможностей использует новую версию библиотеки, которая входит в конфликт с библиотеками LTS-версий дистрибутивов. В этом случае ожидать появления новых версий программы в официальных репозиториях скорее всего не стоит. Установка из сторонних источников, включая сторонние репозитории, PPA и просто пакеты, всегда связана с риском и потенциальным нарушением стабильности системы.

Snap и альтернативные ему технологии позволяют самому разработчику один раз выпустить универсальный пакет, который будет одинаково подходить для всех поддерживаемых систем. Это сразу снимает вопросы по скорости доставки ПО - пользователь может всегда использовать последнюю версию пакета, снимает риски нарушения безопасности и стабильности системы - все snap-приложения запускаются внутри изолированной от системы песочницы.

Читать далее