Tenho uma grande dúvida em relação aos snaps. É compartilhar bibliotecas? A razão pela qual pergunto é porque essa foi uma das coisas que me impressionou tanto quando comecei com o Ubuntu, que ele estava compartilhando bibliotecas e, portanto, economizando espaço no disco. Os snaps ainda fazem isso? ou estou totalmente errado sobre o apt?
Responder1
Não há garantia, nem com snaps nem com apt/dpkg, de que o aplicativo que você está usando depende de bibliotecas compartilhadas em todo o sistema, para cada dependência que elas possuem.
Dependendo de como um snap é construído, ele pode estar usando algumas bibliotecas compartilhadas com outros snaps (o snap principal inclui libc e libstdc++, por exemplo), mas nenhuma direção é tão simples quanto pode parecer, quando se trata de estabilidade, segurança e garantir que os usuários obtenham os recursos mais recentes dos aplicativos.
Responder2
Para o estado atual do meu sistema:
walt@bat:~(0)$ lsb_release -a;snap list
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
Name Version Rev Tracking Publisher Notes
bw 1.8.0 13 stable bitwarden✓ -
core 16-2.42.1 8039 stable canonical✓ core
large-pcap-analyzer 3.6.0 97 stable francesco-montorsi -
mpv 0.26.0 1 beta casept -
mpv-casept 0.24.0 2 stable casept disabled
walt@bat:~(0)$
Este comando responderá sua pergunta para MEU sistema, neste momento:
find /snap -type f -executable | \
xargs file |\
grep ELF |\
cut -d: -f1 |\
xargs -n 1 ldd |\
grep /snap
Use
find
para localizar todos os arquivos "executáveis" em/snap
.Pergunte
file
- os arquivos são scripts ou executáveis ou o quê?Nós nos preocupamos apenas com arquivos "ELF", pois são eles que usam bibliotecas compartilhadas.
file
gera o nome do arquivo, dois pontos, alguns espaços em branco e a descrição. Tudo que eu quero é o nome do arquivo.Então eu uso
xargs
para alimentar os nomes dos arquivos, um de cada vez (-n 1
) paraldd
listar as bibliotecas dinâmicas usadas por cada executável ELF.Alguma das bibliotecas está em
/snap
?Nada que vejo (além de "e se o outro snap que contém a biblioteca não estiver instalado?") impede isso,