Честно говоря, я не знаю много о snap-пакетах - но это не имеет отношения к этому вопросу - см. Ниже. Я предполагаю, что система значительно отличается от существующей.
Есть ли реальная потребность, достаточно сильная? То есть - есть ли новый вариант использования, который достаточно важен для разработки нового формата, и связанная с ним инфраструктура?
Не было ли возможно изменить текущий метод, чтобы охватить также новые варианты использования?
Вполне возможно, что то, что я вижу, это в основном маркетинг - новые имена и презентация для минимальных технических изменений, чтобы получить шанс, что любой орган воспримет это как «новый и лучше », и это может быть использовано на самом деле. Кроме того, может случиться так, что новые пакеты настолько тесно основаны на существующем формате, что это в основном изменение в представлении пользователю. Это может быть хорошим решением, конечно. В этом случае этот вопрос не будет иметь большого значения.
Тогда, я надеюсь, это все еще достаточно полезно, чтобы ответить на побочные аспекты. Просто дайте мне знать, если вопрос не является полезным или сбивает с толку новых пользователей, я с удовольствием его удалю.
Итак, почему они существуют?
Моя первая реакция была «Это не имеет смысла!»
Это похоже на ситуацию, когда На сайте физики кто-то спросил, несчастный, почему никто не обсуждает его блестящие новые идеи в ответах. Это сильно походило на идеи сумасшедшего; Так далеко от реальных физических знаний, что было трудно найти точку, чтобы даже начать. Я написал ответ, который не затрагивал его идеи одним словом, но объяснил, почему нельзя просто обсуждать предположения о сумасшедших идеях - не первый случай этого. Я думаю, что ответ на самом деле был удачным.
Если мои предположения были верны, этот случай похож.
Но тогда, может быть, нет - посмотрим.
Да, в этом есть реальная необходимость.
Необходимость в чем-то подобном существует с тех пор, как впервые одна программа зависела от другой.
Давайте проясним:
Есть причина, по которой это называется зависимостями ада . Упаковочные системы, такие как RPM и Debian, были созданы с целью избежания ада зависимостей. Однако, кто-то должен заплатить за это:
Потеря свободы в обоих случаях приводит к значительной потере свободы.
И вот тут появляются оснастки: они позволяют устройству включать версию X, а упаковочной системе управлять обновлениями. Кто платит за это? Пользователь:
Какие преимущества я получаю взамен?
Одна из особенностей снимков, которая может быть полезна, - это возможность выбирать канал для разработчиков, которые предоставляют более одного канала, например релиз , кандидат , мастер и т. д.
Например, при нажатии кнопки Канал для nextcloud
отобразится диалоговое окно на скриншоте ниже.
Другими сильными сторонами являются изоляция, неизменяемость и изолированность, которые контролируются контекстом политики безопасности , который позволяет определять разрешения для каждого приложения, также называемые «плагинами». например:
Подход в некоторой степени имитирует пакеты приложений MacOS и изолированную программную среду приложений Android g с разрешениями и поставщиками / получателями контента.
Теперь представьте, что вам нужно запустить дюжину приложений, каждое со своей собственной версией определенных библиотек, собственной версией среды выполнения Python / Ruby / NodeJS, и вы не хотите запускать в ад зависимостей и испортить или загрязнить ваши системные библиотеки, ваши системные модули Python / Node / Perl / Ruby и т. д.
На raspberry pi 4 последняя версия PHP, доступная в репозиториях, - 7.3, и если вам случайно нужно запустить что-то, для чего требуется более высокая версия (например, более новая версия nextcloud
) тогда вам нужно будет найти способ сделать это в обход диспетчера пакетов ootb, который, в свою очередь, может нарушить работу других пакетов или вызвать нестабильность. Запуск nextcloud в качестве оснастки позволяет запускать нужную версию независимо от того, какие зависимости вы установили по умолчанию через системный менеджер пакетов. Кроме того, у оснастки есть возможность автообновления, что также может пригодиться.
вам необходимо одновременно запускать разные версии одного и того же веб-сервера, например, apache2, nginx или caddy, потому что у вас есть несколько приложений, каждое из которых требует наличия конкретная версия.