스냅은 라이브러리를 공유하나요?

스냅은 라이브러리를 공유하나요?

스냅과 관련하여 한 가지 큰 질문이 있습니다. 라이브러리를 공유하는 건가요? 제가 물어보는 이유는 우분투를 시작할 때 가장 인상 깊었던 점 중 하나가 바로 라이브러리를 공유하여 디스크 공간을 절약한다는 점이었습니다. 스냅은 아직도 이 일을 하고 있나요? 아니면 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. 그런 다음 각 ELF 실행 파일에서 사용하는 동적 라이브러리를 나열하기 위해 한 번에 하나씩( ) xargs파일 이름을 제공합니다 .-n 1ldd

  6. 에 도서관이 있나요 /snap?

    내가 볼 수 있는 것은("라이브러리가 포함된 다른 스냅이 설치되지 않은 경우 어떻게 되나요?" 제외) 이를 방지하는 것입니다.

관련 정보