スナップはライブラリを共有していますか?

スナップはライブラリを共有していますか?

snaps に関して、大きな疑問が 1 つあります。ライブラリを共有しているのですか? 質問する理由は、Ubuntu を使い始めたときに、ライブラリを共有してディスクのスペースを節約できることに感銘を受けたからです。snaps は今でもこれを行っていますか? それとも、apt について私が完全に間違っているのでしょうか?

答え1

snaps でも apt/dpkg でも、使用しているアプリが、すべての依存関係においてシステム全体の共有ライブラリに依存しているという保証はありません。

スナップの構築方法によっては、他のスナップと共有されるライブラリがいくつか使用される場合があります (たとえば、コア スナップには libc と libstdc++ が含まれます)。ただし、安定性、セキュリティ、およびユーザーがアプリで最新の機能を利用できるようにすることに関しては、どちらの方向も見た目ほど単純ではありません。

答え2

私のシステムの現在の状態:

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

このコマンドは、現時点での私のシステムに関するあなたの質問に答えます:

find /snap -type f -executable | \
  xargs file |\
  grep ELF |\
  cut -d: -f1 |\
  xargs -n 1 ldd |\
  grep /snap
  1. findの下にあるすべての「実行可能」ファイルを見つけるために使用します/snap

  2. 質問file- ファイルはスクリプトですか、実行可能ファイルですか、それとも何か他のものですか?

  3. 共有ライブラリを使用するのは「ELF」ファイルだけなので、これについてのみ考慮します。

  4. fileファイル名、コロン、空白、説明を出力します。必要なのはファイル名だけです。

  5. 次に、xargsファイル名を 1 つずつ入力して ( -n 1)、ldd各 ELF 実行可能ファイルで使用される動的ライブラリを一覧表示します。

  6. にライブラリはありますか/snap?

    私が見たところ、(「他のライブラリを含むスナップがインストールされていない場合はどうなるのか?」以外)それを妨げるものは何もない。

関連情報