Format opakowania przystawkowego w końcu uwalnia nas od piekła zależności, umożliwiając każdemu pakietowi posiadanie własnej kopii zależności. Interesują mnie szczegóły techniczne, w jaki sposób to robi. Jak to obsługuje:
- przystawki w zależności od wersji biblioteki już zainstalowanej za pośrednictwem pakietów deb dla bieżącej wersji? Czy ignoruje zainstalowaną bibliotekę?
- różne przystawki określające tę samą wersję tej samej biblioteki? Czy w jakiś sposób robi to deduplikację?
- aktualizacje bibliotek podstawowych, które prawdopodobnie będą używane przez wiele przystawek? OpenSSL przychodzi na myśl jako ogromny problem.
Aplikacja xdg ma coś, co nazywa się „środowiskiem wykonawczym” :
Podstawową koncepcją aplikacji xdg jest podział środowiska wykonawczego / aplikacji. Każda aplikacja zależy od środowiska wykonawczego, który dostarcza podstawowe biblioteki, na których aplikacja się opiera. Środowiska wykonawcze są zwykle współużytkowane przez wiele aplikacji, ale użytkownik może mieć zainstalowanych wiele środowisk wykonawczych jednocześnie.
Wygląda na to, że w przypadku OpenSSL byłby on częścią środowiska wykonawczego w aplikacjach xdg, więc aktualizacja OpenSSL powinna w przejrzysty sposób wpływać na wszystkie aplikacje xdg korzystające z tego samego środowiska wykonawczego.
źródło
Nie sądzę, że przyciągania sprawdzają, jakie zależności są już zainstalowane. Zawiera tylko wszystkie swoje zależności i środowisko uruchomieniowe (częściowo dlatego przystawka LibreOffice wynosi 287 MB, a flatpak około 200 MB).
Snap zawiera prawie wszystko, co oprogramowanie musi uruchomić. Nie sądzę, żeby cokolwiek zostało udostępnione między snapami.
Gdy snap jest aktualizowany, pobiera tylko nowe zależności, a nie całą snap.
źródło
Dodatkowe wyjaśnienia dotyczą sposobu, w jaki opakowanie typu snap obsługuje współdzielone zależności.
To stwierdzenie w jednej z odpowiedzi jest częściowo prawdziwe, jednak wszystkie zainstalowane pakiety przyciągania, z wyjątkiem przyciągania rdzenia, zależą od dwóch pakietów, z których jeden jest przyciąganiem rdzenia.
snapd - który jest instalowany domyślnie w wersji 16.04 i nowszej, a także może być zainstalowany w wersji 14.04.
core - (podstawowa przystawka), która jest automatycznie pobierana i instalowana po zainstalowaniu pierwszego zainstalowanego pakietu przystawek
Wszystkie pakiety przystawek oprócz samego rdzenia zależą od przystawki rdzenia. Jeśli coś jest nie tak z przyciąganiem rdzenia, niektóre lub wszystkie inne przyciągania nie będą działać. Problem z zatrzaskiem rdzenia można rozwiązać na dwa następujące sposoby.
Zaktualizuj podstawową przystawkę. Nawet jeśli to nie zadziała, wyniki uruchomienia następującego polecenia dostarczą dodatkowych informacji, które pomogą rozwiązać problem.
Odinstaluj przystawkę podstawową i wszystkie pakiety przystawek, a następnie zainstaluj je ponownie.
źródło