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
find
の下にあるすべての「実行可能」ファイルを見つけるために使用します/snap
。質問
file
- ファイルはスクリプトですか、実行可能ファイルですか、それとも何か他のものですか?共有ライブラリを使用するのは「ELF」ファイルだけなので、これについてのみ考慮します。
file
ファイル名、コロン、空白、説明を出力します。必要なのはファイル名だけです。次に、
xargs
ファイル名を 1 つずつ入力して (-n 1
)、ldd
各 ELF 実行可能ファイルで使用される動的ライブラリを一覧表示します。にライブラリはありますか
/snap
?私が見たところ、(「他のライブラリを含むスナップがインストールされていない場合はどうなるのか?」以外)それを妨げるものは何もない。