我有一個關於快照的大問題。是共享庫嗎?我之所以問這個問題,是因為這是我開始使用 ubuntu 時印象深刻的事情之一,它共享庫,因此節省了磁碟空間。快照仍然這樣做嗎?還是我對 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
尋找 .txt 下的所有「可執行」檔案/snap
。問
file
- 檔案是腳本還是可執行檔還是什麼?我們只關心“ELF”文件,因為它們是使用共享庫的文件。
file
輸出檔名、冒號、一些空格和描述。我想要的只是檔案名稱。然後,我使用
xargs
一次一個 (-n 1
) 提供檔名來ldd
列出每個 ELF 可執行檔所使用的動態函式庫。有圖書館嗎
/snap
?我沒有看到任何東西(除了“如果未安裝另一個包含庫的快照怎麼辦?”)阻止它,