Почему существуют Snap-пакеты - есть ли реальная необходимость?

11

Предположения

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

Имеет ли смысл изменение?

Есть ли реальная потребность, достаточно сильная? То есть - есть ли новый вариант использования, который достаточно важен для разработки нового формата - и связанной инфраструктуры?

Не было ли возможно изменить текущий метод, чтобы охватить также новые варианты использования?

Или я упускаю суть?

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

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

Итак, почему они существуют?


Фон

Моя первая реакция была "Это не имеет смысла!"

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

Если мои предположения были верны, этот случай похож.

Но тогда, может быть, нет - посмотрим.

Volker Siegel
источник
Присутствует тесное голосование, говорящее «главным образом на основе мнений» - означает ли это, что ответы, как ожидается, будут основаны на мнениях? По сути, это само по себе является ответом, поскольку это означает, что не существует единого мнения о необходимости изменений. Так что будут аргументы за и против; Это означало бы, что мой вопрос на самом деле очень важен и более полезен, чем я ожидал!
Фолькер Сигел
2
Я проголосовал, чтобы вновь открыть этот вопрос. Спрашивается, почему были добавлены моментальные снимки, когда менеджеры пакетов уже существовали, а в Ubuntu (и других ОС) они уже были. Таким образом, вы правы: если бы это был вопрос, основанный главным образом на мнении, это означало бы, что на этот вопрос нельзя дать ответ, основываясь в первую очередь на фактах и ​​опыте. Однако, как вы видели из превосходного ответа Муру , это не так. Когда (или даже если) следует использовать моментальные снимки, люди все еще могут обсуждать, главным образом, на основе мнений, но это не то, что было.
Элия ​​Каган

Ответы:

17

Да, это действительно необходимо.

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

Давайте проясним это:

Управлять зависимостями сложно .

Есть причина, почему это называется ад зависимости . Системы упаковки, такие как RPM и Debian, были созданы с целью избежать адской зависимости. Однако кто-то должен оплатить стоимость:

  1. В Windows, где программы связывают свои зависимости, пользователь должен позаботиться об обновлениях (и любых проблемах безопасности из-за их отсутствия). Если разработчик хочет, чтобы версия X чего-то для моего приложения была простой, я просто предоставляю это приложению. Теперь, как мне обрабатывать обновления?
  2. В большинстве дистрибутивов Linux (после Debian или Red Hat), где программа может зависеть от программного обеспечения из хранилища, программа из хранилища должна зависеть от программного обеспечения из хранилища. Если я хочу версию X чего-то для своего приложения, а дистрибутив предоставляет X, просто: я зависим от этого. А если дистрибутив не делает? Затем: ???
    • Добавление нескольких версий в дистрибутив увеличивает нагрузку на сопровождающего.
    • Потеря возможности использовать версию выбора зависимостей увеличивает нагрузку на разработчика
    • Потеря способности использовать выбранную версию приложения разочаровывает пользователя

В любом методе происходит значительная потеря свободы.

И вот тут-то и появляются моментальные снимки: они позволяют разработчику включать версию X и позволяют системе упаковки управлять обновлениями. Кто оплачивает стоимость? Пользователь:

  • требуя больше места.
  • подвергая их риску из-за неосторожного разработчика, не восстанавливающего их оснастки, когда зависимость исправлена.

Какие выгоды я получу взамен?

  • Помимо безопасности через обновления (что, честно говоря, мало людей волнует), я не должен беспокоиться о зависимости с привязками. Слово в основном теряет смысл.
  • Помимо обновлений безопасности, разработчику программного обеспечения не нужно беспокоиться о том, чтобы пользователи устанавливали правильные зависимости.
Мур
источник
3
Да, я думаю, что ад зависимости очень хорошо это описывает.
Фолькер Сигел
Позвольте мне создать противоположный голос :), Почему они не просто используют /opt?
user.dz
@Sneetsher думает об этом так: что мешает одному приложению в / opt писать поверх другого приложения в / opt? Хуже того, как вы не позволяете одному приложению читать закрытые ключи другого приложения?
Эван
@ Эван, хорошо AppArmor, уже есть что рассказать . но способ защиты может быть другим. Во всяком случае тема на борт.
user.dz
Муру, спасибо, что написали все это. Кстати, это был первый ответ в Google о том, почему. Мне любопытно, хотя. Я вижу, что моя система использует снимки, скажем, для Chromium. И теперь я хотел бы установить Skype. Обычно я хотел бы, sudo apt-get install skypeно потом я вижу, что это доступно в качестве оснастки. Но когда я установил Chromium, я ничего особенного не сделал, чтобы он использовал оснастку. Все же это делает. Так что теперь я понимаю ПОЧЕМУ защелки существуют, и я рад, что они делают. Мне сейчас интересно, нужно ли мне беспокоиться sudo snap install skype?
SDsolar
3

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

Например, если нажать кнопку « Канал» , nextcloudпоявится диалоговое окно на снимке экрана ниже.

Другими сильными сторонами продажи являются изоляция, неизменяемость и песочница, которые контролируются контекстом политики безопасности , который позволяет определять разрешения для приложений, также называемые «подключаемыми», например:

  • места чтения / записи
  • доступ к съемному хранилищу
  • страны, где оснастка находится в белом / черном списке
  • доступ к сети
  • камера, принтер, джойстик, GPS местоположение
  • системные настройки
  • ... полный список интерфейсов оснастки

Этот подход в некоторой степени имитирует пакеты приложений MacOS и изолированную программную среду приложений Android с разрешениями и поставщиками / получателями контента.

пакеты Ubuntu Snap выберите канал

Теперь представьте, что вам нужно запустить дюжину приложений, каждое из которых имеет собственную версию определенных библиотек, собственную версию среды выполнения Python / Ruby / NodeJS, и вы не хотите попадать в ад зависимости, портить или загрязнять системные библиотеки, ваши системные модули Python / Node / Perl / Ruby и т. д.

ccpizza
источник