O formato de empacotamento instantâneo finalmente nos liberta do inferno das dependências, permitindo que cada pacote tenha sua própria cópia das dependências. Estou interessado nos detalhes técnicos de como isso acontece. Como ele lida com:
- snaps, dependendo da versão de uma biblioteca já instalada via pacotes deb para o release atual? Ele ignora a biblioteca instalada?
- snaps diferentes especificando a mesma versão da mesma biblioteca? Faz desduplicação de alguma forma?
- atualizações nas bibliotecas principais que provavelmente serão usadas por muitos snaps? O OpenSSL vem à mente como um grande ponto de dor.
O xdg-app tem algo chamado "tempo de execução" :
Um conceito fundamental no xdg-app é a divisão de tempo de execução / aplicativo. Todo aplicativo depende de um tempo de execução, que fornece as principais bibliotecas nas quais o aplicativo depende. Normalmente, os tempos de execução são compartilhados por muitos aplicativos, mas um usuário pode ter vários tempos de execução instalados ao mesmo tempo.
Parece que, no caso do OpenSSL, isso faria parte do tempo de execução no xdg-apps; portanto, uma atualização no OpenSSL deve afetar de maneira transparente todos os aplicativos xdg-apps usando o mesmo tempo de execução.
fonte
Eu não acho que os snaps verifique quais dependências já estão instaladas. Ele inclui apenas todas as suas dependências e tempo de execução (o que é parcialmente o motivo pelo qual o snap do LibreOffice tem 287 MB e o flatpak tem cerca de 200 MB).
Os snaps incluem praticamente tudo o que o software precisa para executar. Acho que nada é compartilhado entre snaps.
Quando um snap é atualizado, no entanto, ele baixa apenas as dependências novas, e não o snap inteiro.
fonte
Esclarecimentos adicionais estão em ordem sobre o modo como o empacotamento instantâneo lida com dependências compartilhadas.
Essa afirmação em uma das respostas é parcialmente verdadeira, no entanto, todos os pacotes de snap instalados, exceto o snap ao núcleo, dependem de dois pacotes, um dos quais é o snap ao núcleo.
snapd - que é instalado por padrão no 16.04 em diante e também pode ser instalado no 14.04.
core - (o snap ao núcleo), que é baixado e instalado automaticamente quando o primeiro pacote de snap instalado é instalado
Todos os pacotes de snap, exceto o próprio núcleo, dependem do snap do núcleo. Se houver algo errado com o snap ao núcleo, alguns ou todos os outros snaps não funcionarão. Um problema com o snap ao núcleo pode ser corrigido das duas maneiras a seguir.
Atualize o snap ao núcleo. Mesmo se isso não funcionar, os resultados da execução do comando a seguir fornecerão informações adicionais que ajudarão a resolver o problema.
Desinstale o snap ao núcleo e todos os pacotes de snap e reinstale-os.
fonte