Почему Ubuntu переходит на пакеты Snappy?

127

Зачем Ubuntu сбрасывать пакеты .deb и переходить на пакеты .snappy? (По крайней мере, сейчас они хранят пакет .deb для обычных дистрибутивов). .deb уже является самой популярной упаковкой.

Это дает представление о формате пакета Snappy. Но что будет с существующими пакетами deb? Есть ли явное преимущество при переезде в Снейп? Это стоит боли?

Вишнудев К
источник
1
Ссылка borken
y30

Ответы:

147

Snappy - это попытка решить одну из фундаментальных проблем с Linux как настольной операционной системой, которая заключается в доступности пакетов и их распространении. Тем не менее, Snappy не предназначен полностью для замены дэбов. Snaps и Debs работают рядом друг с другом.

Я энтузиаст Linux и менеджер проектов приложений для Linux. Хотя я люблю системы Linux в целом, я презираю текущее состояние распространения пакетов. Снаппи стремится решить эту фундаментальную проблему.

В Linux пакеты по большей части специфичны для дистрибутивов (можно создать один DEB, который работает во всех различных системах на основе Debian, но ограничивает вас в некоторых отношениях), но не только для пакетов, зависящих от версии дистрибутива.

Если я создам пакет deb для Ubuntu 16.04, тогда этот пакет не будет работать ни в одной версии Ubuntu. Я также должен сделать 14.04, 15.04, 15.10 и так далее. Это просто Ubuntu. Мне также нужно сделать один для Debian. Затем вам нужно сделать RPM для Fedora 21, 22, 23 и т. Д., И эти RPM даже не охватывают openSUSE.

Это означает, что если я хочу выпустить новую версию приложения и не ждать, пока сопровождающие дистрибутивы включат ее в репозиторий (что обычно занимает абсурдное количество времени), то мне нужно предоставить более 20 пакетов для охвата большинства дистрибутивов Linux. и все же это не будет охватывать все.

Snaps в Ubuntu предоставляют способ создать одну Snap, которая работает на каждой версии Ubuntu, которая поддерживает Snaps. Больше не зависит от конкретной версии дистрибутива.

Snaps могут быть интегрированы в другие дистрибутивы. Потенциально больше не является специфичным для дистрибутива.

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

По сути, все, что я ненавижу в дистрибутиве пакетов Linux, будет решать Snappy. Хотя важно отметить, что эти проблемы также будут решены AppImages и Flatpaks .

TL; DR

Дистрибуция пакетов Linux ужасна как для разработчиков, так и для пользователей. Snappy (также AppImages & Flatpaks) предназначены для решения этой фундаментальной проблемы с системами на базе Linux.


Этот вопрос действительно о том, почему этот шаг, но если кому-то интересно узнать больше о том, что такое Snaps и как они работают. Я создал это видео, чтобы подробно объяснить структуру.

Майкл Туннелл
источник
13
Черт возьми, это звучит так сложно, за исключением того, что никто не поддерживает столько версий Fedora, Debian или Ubuntu. К моменту выхода 16.04, 15.04 - EOL. К тому времени, как выйдет Fedora 23, у F21 осталось меньше месяца жизни, достаточно времени, чтобы люди могли пропустить релиз. Не то чтобы это имело значение. После того, как вы написали базовый файл спецификаций RPM или базовый пакет Debian, другие дистрибутивы являются подправленными версиями, и тогда это просто работа Jenkins для их сборки для каждого нового выпуска.
Джон Франклин
10
Пакеты Ubuntu созданы для такого количества версий: 14.04, 15.10, 16.04, а некоторые продолжают поддерживать старые LTS, такие как 12.04, которые все еще поддерживаются. || У Fedora нет LTS, так что есть меньше версий для поддержки, но по крайней мере 2 версии с возможными 3 версиями для поддержки. || Что звучит лучше для вас? A. сделать несколько пакетов каждой версии одного и того же приложения для одного дистрибутива и сделать это для нескольких дистрибутивов. ИЛИ B. сделайте один снимок для каждой версии вашего приложения, и это работает на любом дистрибутиве и любой версии указанного дистрибутива. Да, я голосую за снимки в этих сценариях.
Майкл Туннелл
4
@ user447607 Вы не понимаете, что такое Snaps и Snappy. Там не будет куча избыточности, будет время выполнения и будут варианты, чтобы привязки зависели от других привязок для экономии места. Это уже возможно, на самом деле. Snappy - это другая система управления пакетами, которая обрабатывает привязки, и apt все еще работает с DEB. Привязки не заменяют DEB, а дополняют DEB, поэтому вы получаете гибридный подход, который охватывает оба метода. Фактически, Snaps могут быть автоматически сгенерированы через существующие DEB.
Майкл
2
@konung Docker - это просто контейнеризация, в которой есть Snaps, а также интеграция с основными компонентами системы. Например, Docker требует, чтобы все было включено в контейнер для его использования. Однако для привязок требуется только то, что необходимо, и тогда они могут смотреть за пределы оснастки, чтобы использовать другие вещи. Snaps также имеют НАМНОГО лучшую инфраструктуру, потому что Docker не имеет реального механизма обновления, но Snaps использует систему управления пакетами, аналогичную APT для Debian. Я предлагаю проверить видео, которое я связал в оригинальном посте. Я планирую сделать обновленную версию в ближайшее время.
Майкл Туннелл
6
@konung Snaps не являются контейнерами. Многие сравнивают их, например, с Docker, но Docker - это настоящие контейнеры, а Snaps - нет. Моментальные снимки похожи на контейнеры, но они не являются полными контейнерами, поскольку они допускают исключения за пределами конфайнмента. Например, настройки / конфиги / данные хранятся вне Snap в папке / home. Таким образом, вы можете иметь столько версий оснастки, сколько хотите, чтобы все использовали одни и те же данные / конфигурации.
Майкл Туннелл
20

Это просто. Пакет Snappy содержит все необходимые файлы , где пакеты .deb имеют зависимости от других пакетов.

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

Алекс WLBI
источник
7
Это также означает кошмар безопасности. О, пожалуйста, докажите, что я не прав ... потому что быть правым было бы так ужасно.
Юрген А. Эрхард
27
По сути, они выбирают путь Windows - который по иронии судьбы был высмеян Linux-пользователями в прошлом.
Питикос
1
Привет @ JürgenA.Erhard, как я понимаю, каждый пакет будет иметь свои собственные библиотеки, например, криптографию, поэтому вместо проверки одного (то есть самокомпиляции) вы должны в основном иметь дело с каждым пакетом индивидуально, это то, что вы имели в виду под "кошмар безопасности"?
Илья
Исправление: «содержит все необходимые файлы» не является точным, поскольку есть привязки ядра, которые действуют как среды выполнения. Тем не менее, это было добавлено после первоначального ответа, поэтому оно было правильным в то время, но с тех пор многое изменилось.
Майкл Туннелл
7

Snappy Personal, их новый подход к управлению / обновлению пакетов, который разработан, чтобы быть более быстрым, более надежным, транзакционным и с более сильной безопасностью.

Snappy хотя бы для одного из своих вращений на рабочем столе - план состоит в том, чтобы переключить вращение Ubuntu Desktop-Next с .deb на Snappy Personal.

.deb все еще там, и обычный пользователь все еще может использовать его регулярно, когда конвертирует .deb в snappy.

Snappy будет использоваться для унификации концепции управления пакетами среди ioT, которая теперь использует snappy в качестве своей основной ОС. Более того, snappy обеспечивает лучший способ обновления и избавления от проблем при обновлении / обновлении, поскольку в нем используется концепция целого образа, что означает, что обновление будет состоять только из одного куска и, следовательно, не даст сбоя.

Прочитайте эти статьи для получения дополнительной информации:

http://www.webupd8.org/2015/04/ubuntu-desktop-to-eventually-switch-to.html

http://www.itworld.com/article/2914850/linux/is-ubuntu-moving-away-from-deb-packages-here-is-the-complete-story.html

Существует также QA видео с убунта на воздухе , который отвечает очень много вопросов https://youtu.be/lHO8j8uo5Z4

Maythux
источник
9
почему они не могут сделать пакет .deb версии 2 с обратной совместимостью? Зачем делать раскол в сообществе Linux? Пока что план состоит в том, чтобы медленно перейти на Snappy, если это не полный провал.
Вишнудев К
они хотят объединить концепцию управления пакетами среди ioT, которая сейчас использует snappy в качестве своей основной ОС. Более того, snappy предоставляет лучший способ обновления и избавления от проблем при обновлении / обновлении, поскольку он использует концепцию целого образа, что означает, что обновление будет состоять только из одного куска и, следовательно, не
приведет
3
Достаточно плохо с большим разнообразием методов для упаковки в Linux (что уже вызывает проблемы со сторонними программами), другой вызовет еще большую путаницу: - /
Уилф
@Maythux. Что такое IoT?
TRiG
4
@Maythux xkcd.com/927
CVn
4

Подумайте о том, чтобы перейти к быстрому Ubuntu Core сегодня, если вы хотите создать что-то, что другие могли бы использовать, другими словами, продукт .

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

Чтобы достичь этого, оснастки сильно отличаются от пакетов debian:

  • моментальные снимки живут в изолированном системном месте, в то время как пакеты debian могут распространять файлы повсюду.
  • нет сценариев сопровождающих для моментальных снимков.

Возвращаясь к исходному вопросу о том, использовать или не использовать , если вы планируете заменить свой рабочий стол на Ubuntu Core, я предлагаю вам придерживаться обычного рабочего стола Ubuntu. Ubuntu Core, я лично люблю называть это дистрибутивом «ничего» , потому что он сам по себе ничего не значит, но предоставляет очень хороший строительный блок для того, чтобы что-то предлагать, и именно поэтому он популярен в IoT в наши дни.

sergiusens
источник
3
Другими словами это так же, как то, что делает Windows?
Вишнудев К
1
Это широкий вопрос. Что конкретно делает Windows?
sergiusens
4
Я устанавливаю VLC в Windows, он устанавливает все пакеты, необходимые для увеличения пространства. где, как и в Linux, мы получаем только те пакеты, которых у нас нет. Это довольно удобно с точки зрения обновлений и использования жесткого диска.
Вишнудев К
2
Похоже, да. Это ничем не отличается от установки apkна вашем телефоне. Приложения могут развиваться со своими зависимостями по своему усмотрению. Есть способы разделить это, хотя, например, используя frameworkснимки, это требует тщательного анализа безопасности. Разница с Windows заключается в том, что здесь нет инсталляторов, потенциально способных приземлиться где угодно.
sergiusens