Os snaps estão compartilhando bibliotecas?

Os snaps estão compartilhando bibliotecas?

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
  1. Use findpara localizar todos os arquivos "executáveis" em /snap.

  2. Pergunte file- os arquivos são scripts ou executáveis ​​ou o quê?

  3. Nós nos preocupamos apenas com arquivos "ELF", pois são eles que usam bibliotecas compartilhadas.

  4. filegera o nome do arquivo, dois pontos, alguns espaços em branco e a descrição. Tudo que eu quero é o nome do arquivo.

  5. Então eu uso xargspara alimentar os nomes dos arquivos, um de cada vez ( -n 1) para lddlistar as bibliotecas dinâmicas usadas por cada executável ELF.

  6. 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,

informação relacionada