Gibt Snaps Bibliotheken frei?

Gibt Snaps Bibliotheken frei?

Ich habe eine große Frage zu Snaps. Werden damit Bibliotheken geteilt? Ich frage, weil ich beim Einstieg in Ubuntu so beeindruckt war, dass es Bibliotheken teilt und dadurch Speicherplatz auf der Festplatte spart. Macht Snaps das immer noch? Oder liege ich mit apt völlig falsch?

Antwort1

Weder bei Snaps noch bei Apt/Dpkg gibt es eine Garantie dafür, dass die von Ihnen verwendete App bei allen vorhandenen Abhängigkeiten auf systemweite gemeinsam genutzte Bibliotheken angewiesen ist.

Je nachdem, wie ein Snap erstellt wird, verwendet er möglicherweise einige Bibliotheken, die mit anderen Snaps gemeinsam genutzt werden (der Kern-Snap umfasst beispielsweise eine libc und eine libstdc++). Wenn es jedoch um Stabilität, Sicherheit und die Gewährleistung, dass Benutzer in Apps die neuesten Funktionen erhalten, geht, ist keine der beiden Vorgehensweisen so einfach, wie es scheint.

Antwort2

Zum aktuellen Zustand meines Systems:

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)$ 

Dieser Befehl beantwortet Ihre Frage für MEIN System zum jetzigen Zeitpunkt:

find /snap -type f -executable | \
  xargs file |\
  grep ELF |\
  cut -d: -f1 |\
  xargs -n 1 ldd |\
  grep /snap
  1. Verwenden Sie find, um alle „ausführbaren“ Dateien unter zu finden /snap.

  2. Fragen Sie file: Sind die Dateien Skripte oder ausführbare Dateien oder was?

  3. Für uns sind nur die „ELF“-Dateien von Belang, da diese gemeinsam genutzte Bibliotheken verwenden.

  4. filegibt den Dateinamen, einen Doppelpunkt, einige Leerzeichen und die Beschreibung aus. Ich möchte nur den Dateinamen.

  5. Dann verwende ich xargs, um die Dateinamen einzeln einzugeben ( -n 1), um ldddie von jeder ausführbaren ELF-Datei verwendeten dynamischen Bibliotheken aufzulisten.

  6. Befinden sich irgendwelche Bibliotheken in /snap?

    Nichts, was ich sehe (außer „was ist, wenn der andere, die Bibliothek enthaltende Snap nicht installiert ist?“), verhindert dies,

verwandte Informationen