Формат моментальной упаковки, наконец, освобождает нас от ада зависимостей, позволяя каждому пакету иметь свою собственную копию зависимостей. Я заинтересован в технических деталях, как это происходит. Как это обрабатывать:
- зависает в зависимости от версии библиотеки, уже установленной с помощью пакетов deb для текущего выпуска? Это игнорирует установленную библиотеку?
- разные снимки, указывающие одну и ту же версию одной и той же библиотеки? Это делает дедупликацию как-то?
- Обновления основных библиотек, которые могут быть использованы множеством снимков? OpenSSL приходит на ум как огромная болевая точка.
В xdg-app есть что-то, что называется «время выполнения» :
Фундаментальная концепция в xdg-app - это разделение среды выполнения / приложения. Каждое приложение зависит от среды выполнения, которая предоставляет основные библиотеки, на которые опирается приложение. Среда выполнения обычно используется многими приложениями, но пользователь может установить несколько сред выполнения одновременно.
Похоже, что в случае OpenSSL это будет частью среды выполнения в приложениях xdg, поэтому обновление OpenSSL должно прозрачно влиять на все приложения xdg, использующие одну и ту же среду выполнения.
источник
Я не думаю, что оснастки проверяют, какие зависимости уже установлены. Он просто включает в себя все свои зависимости и время выполнения (именно поэтому отчасти оснастка LibreOffice составляет 287 МБ, а flatpak - около 200 МБ).
Снимки включают в себя практически все, что нужно программному обеспечению для запуска. Я не думаю, что что-то делится между снимками.
Однако при обновлении оснастки загружаются только новые зависимости, а не вся привязка.
источник
Дополнительные пояснения касаются того, как Snap Snap обрабатывает общие зависимости.
Это утверждение в одном из ответов частично верно, однако все установленные пакеты моментальных снимков, за исключением основного моментального снимка, зависят от двух пакетов, один из которых является базовым.
snapd - который устанавливается по умолчанию в 16.04 и далее, а также может быть установлен в 14.04.
core - (оснастка ядра), которая автоматически загружается и устанавливается при установке первого установленного пакета оснастки
Все пакеты оснастки, кроме самого ядра, зависят от привязки ядра. Если с привязкой к ядру что-то не так, то некоторые или все другие привязки работать не будут. Проблема с привязкой к ядру может быть устранена следующими двумя способами.
Обновите ядро оснастки. Даже если это не сработает, результаты выполнения следующей команды предоставят дополнительную информацию, которая поможет решить проблему.
Удалите оснастку ядра и все пакеты оснастки, а затем переустановите их.
источник