스냅과 관련하여 한 가지 큰 질문이 있습니다. 라이브러리를 공유하는 건가요? 제가 물어보는 이유는 우분투를 시작할 때 가장 인상 깊었던 점 중 하나가 바로 라이브러리를 공유하여 디스크 공간을 절약한다는 점이었습니다. 스냅은 아직도 이 일을 하고 있나요? 아니면 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
파일 이름, 콜론, 일부 공백 및 설명을 출력합니다. 내가 원하는 것은 파일 이름뿐입니다.그런 다음 각 ELF 실행 파일에서 사용하는 동적 라이브러리를 나열하기 위해 한 번에 하나씩( )
xargs
파일 이름을 제공합니다 .-n 1
ldd
에 도서관이 있나요
/snap
?내가 볼 수 있는 것은("라이브러리가 포함된 다른 스냅이 설치되지 않은 경우 어떻게 되나요?" 제외) 이를 방지하는 것입니다.