Внезапно выяснилось, что Linux нужен универсальный пакет для установки программного обеспечения. По крайней мере, именно так считает руководство компании Canonical, представившей формат Snappy.
Возможно, такая потребность действительно существует. Тем более, что в этом уверен разработчик, сумевший решить практически невыполнимую задачу — убедить пользователей в том, что интерфейс Unity удобен и практичен. Поэтому будет резонно предположить, что они окажутся правы, и попробовать понять, что за этим скрывается.
Именно так и поступил эксперт в области Linux-решений Брюс Байфилд. Его точка зрения традиционно необычна и интересна.
Прежде всего, он справедливо замечает, что необходимость универсального пакета очевидна далеко не всем. Та же Canonical более десяти лет использовала для управления программами формат Debian и никаких проблем по этой причине ни у кого не возникало. Более того, разработчики этого формата утверждают, что по нему уже давно составлено подробное руководство, позволяющее правильно упаковать любое приложение.
Интересно ещё и то, что практически одновременно с инициативой Canonical аналогичное решение предложила и компания Red Hat. Создаваемый ей универсальный формат пакетов Flatpak претендует на ту же саму роль, что и Snappy. Очень похоже, что есть основания говорить не о технологическом, а корпоративном соперничестве.
Брюс Байфилд обращает внимание на один любопытный нюанс. Соперничество DEB (Debian/Ubuntu) и RPM (Red Hat/Fedora) существует очень давно. Споры о том, какой формат лучше, не утихают и по сей день, хотя накал дискуссий уже не тот, что был в самом начале. Сейчас по сути назревает аналогичный конфликт, только между универсальными пакетами от Red Hat и Canonical.
Причём в данном случае практическая аргументация вряд ли будет носить исключительно технологический характер. Даже беглое знакомство с AppImage, Flatpak, Snappy и GNU Guix позволяет сделать вывод, что все они имеют схожие принципы установки, удаления или обновления.
Конечно некоторые особенности у каждого формата есть. Например, Snappy позволяет установить только изменённую с момента последнего обновления часть пакета, а Guix не исключает использования уже установленных зависимостей. Но несмотря на это нет видимых причин, препятствующих включению в одну систему функций, применяемых в другой.
Сейчас много говорят о повышении уровня безопасности при применении универсальных пакетов, позволяющих изолировать приложение. Но подобное можно получить при использовании Firejail или просто установки программы в контейнер. Эти возможности уже существуют и ничего принципиально нового не обещается.
Наконец на данный момент все рассуждения технического характера абсурдны — ни один из кандидатов не обладает настолько заметным преимуществом, чтобы стать очевидным лидером. Все решения находятся в стадии разработки и любые недостающие в них функции могут появиться уже завтра.
Возможно, Брюс Байфилд немного преувеличивает, но по сути он прав. Универсальный формат пакета — это явно не то, что нужно пользователям Linux в первую очередь. По крайней мере, ничего принципиально нового это не даёт. Так почему же две ведущие компании практически одновременно взялись за решение этой не особенно актуальной задачи?
Возможный ответ — бизнесу важно контролировать одну из основных функций системы. Причём речь может идти о установке не столько свободных, сколько проприетарных приложений, работающих в Linux. И это именно то, за что можно побороться.
Таким образом уместней говорить не о каких-то инновациях, а о фактически прямом столкновении двух компаний: Canonical и Red Hat. Борьба идёт за корпоративного пользователя, который не может решить все свои задачи при помощи исключительно свободного ПО.
Брюс Байфилд считает, что сообществу следует «болеть» за Red Hat. Конечно, большой вклад Canonical в развитие свободного ПО отрицать нельзя, но в последнее время уровень доверия к этой компании заметно упал. По мнению эксперта, есть даже некоторые основания считать, что она может изменить лицензию на своё ПО.
Red Hat в свою очередь пока умудряется как-то сохранять баланс между своими корпоративными потребностями и интересами сообщества. Она вносит заметный вклад в коллективную разработку, не требуя взамен немедленной отдачи. По всей видимости руководство компании понимает, что контроль за основными составляющими Linux должен оставаться у сообщества.
Впрочем совершенно не очевидно, что реальный выбор будет ограничен только двумя решениями, созданными крупными компаниями. Некоторые разработчики вообще не любят иметь дело с корпорациями — они попросту не примут ни того, ни другого, искренне считая, что подобные важные элементы системы должны развиваться только под эгидой какого-либо фонда.
По этой логике у них будет иной выбор: AppImage или GNU Guix. Второй проект предпочтительней тем, что он тесно связан с Фондом свободного программного обеспечения и его участники всячески демонстрируют свою приверженность принципам Open Source. А вот AppImage распространяется на условиях лицензии BSD, которая недостаточно защищает свободу ПО.
Получается, что соперничество в данном случае ведётся не только между двумя крупными компаниями, но и между бизнесом и сообществом, поскольку в данном случае нет полной уверенности, что корпорации будут действовать в соответствии со стандартами сообщества.
Хотя идеология Open Source не отрицает конкуренции, но считает сотрудничество более эффективным способом достижения цели. Поэтому предлагая различные стандарты универсального пакета Canonical и Red Hat фактически подрывают базовые идеи СПО.
Таким образом сценарии дальнейшего развития событий могут быть самыми разнообразными. Например, одна из компаний может принять решение отказаться от полного контроля за собственной разработкой, чем привлечёт сообщество на свою сторону. Возможно, в долгосрочной перспективе именно этот путь и будет оптимальным.