Linux에서 Snap 패키지로 작업하는 방법

게시 됨: 2022-01-29
우분투

snap 을 사용하여 Linux 소프트웨어 패키지를 설치하면 종속성 지옥과 작동하는 다른 응용 프로그램과 작별할 수 있습니다. Snap 패키지는 원래 Ubuntu용으로 설계되었지만 이제는 다양한 Linux 배포판에서 사용할 수 있습니다.

스냅 패키지란 무엇입니까?

과거에는 Linux에 애플리케이션을 설치하는 것이 잠재적으로 실망스러운 경험이었습니다. 특정 라이브러리를 찾기 위해서만 무언가를 설치하거나 다른 종속성이 누락되었거나 오래되었습니다. 그런 다음 누락된 리소스를 찾아 설치했지만 방금 교체한 라이브러리 버전에 따라 다른 애플리케이션을 찾았습니다. 하나를 고치고 하나를 깨고 반복합니다.

이것은 apt, dnf 및 pacman과 같은 더 나은 패키지 관리 시스템으로 개선되었습니다. 그러나 동일한 응용 프로그램의 다른 버전을 설치해야 하는 경우 여전히 어려움에 직면해 있습니다. 또는 라이브러리의 특정 버전에 묶여 있기 때문에 충돌하는 두 개의 응용 프로그램을 사용하는 경우입니다.

이러한 문제에 대한 한 가지 솔루션은 애플리케이션 패킹 및 배포 시스템입니다. Snappy는 이들 중 가장 인기 있는 것 중 하나입니다. Ubuntu Touch 이니셔티브를 연상시키는 Click이라는 패키징 및 배포 시스템을 기반으로 합니다. AppImage 및 FlatPack은 당신이 경험했을 수도 있는 다른 것들입니다.

이러한 시스템은 단일 압축 파일에 종속성 및 기타 요구 사항과 함께 응용 프로그램을 캡슐화합니다. 그런 다음 애플리케이션은 일종의 미니 컨테이너에서 실행됩니다. 샌드박스 처리되어 다른 응용 프로그램과 분리되어 있습니다. 응용 프로그램과 함께 패키지로 제공되거나 필요한 라이브러리 및 기타 리소스는 해당 응용 프로그램에서만 사용할 수 있습니다.

광고

그들은 전통적인 의미로 설치되지 않으므로 동일한 리소스의 다른 버전이 필요한 다른 응용 프로그램에 문제를 일으키지 않습니다. 각 응용 프로그램이 자체 샌드박스에 있기 때문에 충돌하는 라이브러리 버전이 필요한 응용 프로그램을 설치하고 실행할 수도 있습니다.

그러나 일반적인 방식으로 설치되지 않은 경우 어떻게 처리됩니까? 음, 단일 패키지 파일이 다운로드, 압축 해제 및 SquashFS 가상 파일 시스템으로 마운트됩니다. 그런 다음 가상 환경으로 제공됩니다. 이 모든 것이 무대 뒤에서 이루어집니다. 응용 프로그램을 설치했으며 이제 액세스할 수 있다는 사실만 알 수 있습니다.

물론 각 패키지 파일에는 응용 프로그램에 필요한 모든 리소스가 포함되어야 하므로 패키지 파일이 커질 수 있습니다. 또한 MySQL 또는 Apache와 같이 일반적으로 한 번만 설치하는 리소스를 쉽게 복제할 수 있습니다. 두 개의 서로 다른 snap 응용 프로그램에 동일한 리소스가 필요한 경우 각각 고유한 복사본을 가져옵니다.

이것은 설치의 단순성과 리소스 충돌 문제의 제거에 대한 절충안입니다.

스냅 설치 중

Snappy는 Ubuntu 16.04와 함께 도입되었으므로 해당 버전 이상을 실행하고 있다면 이미 사용할 수 있습니다. 우리 컴퓨터에서는 Snappy가 Manjaro 18.04에 설치되었지만 Fedora 31에 설치해야 했습니다.

snap 은 패키지 파일의 이름이자 패키지 파일과 상호 작용하는 데 사용하는 명령입니다. 이면에서 snapd 데몬은 컴퓨터에 Snappy가 아직 설치되어 있지 않은 경우 설치해야 하는 패키지의 이름이기도 합니다.

Fedora에 snapd 를 설치하려면 다음 명령을 입력하십시오.

 sudo dnf 설치 snapd 

광고

Manjaro에 설치해야 하는 경우 다음 명령을 사용합니다.

 sudo pacman -Sy snapd
 sudo systemctl enable --now snapd.socket

snap version 명령을 사용하여 snap 클라이언트, snapd 데몬 및 소프트웨어 시리즈 번호의 버전을 볼 수 있습니다. Linux 배포판의 이름과 릴리스, 커널 버전도 표시됩니다.

다음을 입력합니다.

 스냅 버전 

스냅 패키지 설치

snap 패키지를 설치하는 것은 매우 간단한 프로세스입니다. snap 을 사용하여 snap 패키지를 찾은 다음 원하는 패키지를 설치할 수 있습니다.

다음을 입력하여 gimp 이미지 편집기를 찾고 설치합니다.

 스냅 찾기 김프 

snap 은 검색 단서 "gimp"와 일치하는 항목을 검색하고 결과를 반환합니다. 검색어와 일치하거나 언급하는 모든 항목을 찾습니다.

패키지 중 하나를 설치하려면 아래와 같이 Name 열의 값을 사용합니다.

 sudo 스냅 설치 김프 

광고

다운로드가 완료되면 완료율이 올라가고 진행률 표시줄이 터미널 창의 왼쪽에서 서서히 나타납니다. 설치가 완료되면 패키지가 설치되었음을 알리는 메시지(아래 그림 참조)가 나타납니다.

df 명령을 사용하여 Linux 컴퓨터에 구성된 다양한 파일 시스템의 용량과 사용량을 확인할 수 있습니다. 출력을 grep 명령으로 파이프하고 "gimp"를 검색하면 방금 설치한 패키지의 항목을 분리합니다.

다음을 입력합니다.

 DF | 그렙 김프 

이것은 스냅 패키지가 마치 파일 시스템인 것처럼 마운트되었음을 ​​보여줍니다. 마운트 지점은 /snap/gimp/252snap 디렉토리에 있습니다. "252"는 이 버전의 gimp 의 릴리스 번호입니다.

관련: Linux에서 grep 명령을 사용하는 방법

파일 시스템은 /dev/loop18 로 나열됩니다. 루프 장치 파일은 일반 파일을 블록 장치로 액세스할 수 있도록 하는 데 사용됩니다. 일반적으로 디스크 이미지에 파일 시스템을 마운트하는 데 사용됩니다. 이 경우 snap 패키지 내에 SquashFS 파일 시스템을 탑재하고 있습니다. "18"은 이 Linux 컴퓨터에서 사용 중인 18번째 /dev/loop 장치 파일임을 의미합니다.

df 명령을 사용하여 이를 빠르게 확인할 수 있습니다. – t (유형) 옵션을 사용하여 출력을 SquashFS 파일 유형으로만 제한합니다.

다음을 입력합니다.

 df -t 호박 

마운트된 SquashFS 파일 시스템이 나열됩니다. /dev/loop 장치 파일이 각각을 처리하며 그 중 18개가 있습니다.

광고

각 파일 시스템은 /snap 디렉토리 내의 디렉토리에 마운트됩니다. 그러나 이것이 이 컴퓨터에 18개의 다른 snap 패키지가 설치되어 있다는 의미는 아닙니다. 이것은 Ubuntu 배포판이므로 일부 snap 패키지는 상자에서 꺼내자마자 설치되며 다른 패키지를 방금 설치했습니다.

또한 snapd 를 설치하면 다른 snap 패키지의 요구 사항을 처리하기 위해 일부 핵심 snap 패키지가 설치됩니다.

아래와 같이 snap list 명령을 사용하여 설치된 snap 패키지를 나열할 수 있습니다.

 스냅 목록 

출력이 약간 넓어서 목록의 끝은 아래와 같습니다.

전체 목록은 다음과 같습니다.

 이름 버전 Rev 추적 게시자 참고 사항
core 16-2.43.3 8689 안정적인 표준* 코어
core18 20200124 1668 안정적인 표준* 기반
gimp 2.10.18 252개의 안정적인 snapcrafters -
gnome-3-26-1604 3.26.0.20191114 98 안정/... 정식* -
gnome-3-28-1804 3.28.0-16-g27c9498.27c9498 116 안정적인 표준* -
gnome-calculator 3.34.1+git1.d34dc842 544 안정/... 정식* -
gnome-characters v3.32.1+git3.b9120df 399 안정/... 정식* -
gnome-logs 3.34.0 81 안정/... 정식* -
gnome-system-monitor 3.32.1-3-g0ea89b4922 127 안정/... 정식* -
gtk-common-themes 0.1-28-g1503258 1440 안정/... 정식* -

보시다시피 18개가 아닌 10개의 스냅 패키지가 설치되어 있습니다. 그러나 이 10개의 패키지로 인해 18개의 SquashFS 파일 시스템이 생겼습니다. 테이블 열은 꽤 자명하지만 여기에 몇 가지 설명이 있습니다.

  • 이름 : 설치된 snap 패키지의 이름입니다.
  • 버전 : snap 패키지에 있는 소프트웨어의 버전 번호입니다.
  • Rev : snap 패키지의 개정 번호입니다.
  • 추적 : 이 snap 패키지가 업데이트를 모니터링하는 채널입니다. 네 가지가 있습니다.
    • 안정: 기본 채널입니다. 이름에서 알 수 있듯이 이 채널에는 가장 안정적인 패키지가 포함되어 있습니다.
    • 후보: 이 채널은 덜 안정적이지만 코드가 완전한 릴리스 후보 수준 소프트웨어를 포함하고 있기 때문에 매우 가깝습니다. 안정적인 채널로 이동하기 전에 최종 테스트를 거칩니다.
    • 베타: 이 채널은 개발 주기 후반의 품질이지만 안정적이라는 보장은 없습니다.
    • Edge: 초기 빌드 테스터용. 중요한 작업이나 프로덕션 컴퓨터에서 이 채널을 사용하면 안 됩니다. 여기 드래곤이 있습니다!
  • 게시자 : snap 패키지를 출시한 개인, 회사 또는 조직입니다. 확인된 게시자(및 터미널 창에서 유니코드 지원)인 경우 게시자 이름 옆에 녹색 확인 표시가 나타납니다. 확인 표시가 표시되지 않으면 별표( * )가 표시됩니다.
  • 참고 : 모든 의견이나 추가 정보가 여기에 표시됩니다.

스냅 채널

info 옵션을 사용하여 snap 패키지에 대한 설명을 얻을 수 있습니다.

이렇게 하려면 다음을 입력합니다.

 스냅 정보 gtk-common-themes 

광고

패키지가 추적 중인 채널과 4개의 채널 각각에 있는 snap 패키지의 소프트웨어 버전을 볼 수 있습니다. 대부분의 경우 안정적인 채널을 유지해야 합니다.

snap 패키지는 보고 있는 채널 또는 "추적" 채널에서 최신 버전의 소프트웨어를 사용할 수 있는지 여부를 확인하기 위해 하루에 네 번 확인합니다. 채널 snap 패키지 트랙을 변경하려면 refresh--channel 옵션을 사용할 수 있습니다.

이렇게 하려면 다음을 입력합니다.

 sudo 스냅 새로 고침 gtk-common-themes --channel=베타 

최신 버전의 소프트웨어를 사용할 수 있는 경우 해당 소프트웨어가 설치되지만 여기서는 그렇지 않았습니다. 그러나 snap 패키지는 이제 베타 채널을 추적하고 있습니다. 새로운 베타 버전이 출시되는 즉시 자동으로 다운로드 및 업그레이드됩니다.

--list 옵션을 사용하여 컴퓨터에 설치된 snap 패키지에 대한 업데이트가 있는지 확인할 수 있습니다.

이렇게 하려면 다음을 입력합니다.

 sudo 스냅 새로 고침 --list 

컴퓨터의 snap 패키지가 추적하는 채널에 최신 소프트웨어 버전이 포함되어 있으면 알려줍니다.

광고

최신 버전의 소프트웨어를 사용할 수 있는 경우 아래와 같이 refresh 옵션을 사용하여 수동으로 새로 고침을 강제 실행할 수 있습니다.

 sudo 스냅 새로 고침 gtk-common-themes 

스냅 패키지 제거

snap 패키지를 제거하려면 아래와 같이 제거 옵션을 사용할 수 있습니다.

 sudo 스냅 제거 김프 

스냅 치트 시트

스냅 패키지를 사용하는 것은 매우 간단하지만 도움이 될 몇 가지 명령 목록을 작성했습니다.

  • 패키지를 검색하려면: snap find package_name
  • 패키지를 설치하려면: sudo snap install package_name
  • 설치된 모든 패키지를 보려면: snap list
  • 단일 패키지에 대한 정보를 얻으려면: snap info package_name
  • 업데이트를 위해 패키지가 추적하는 채널을 변경하려면: sudo snap refresh package_name --channel=channel_name
  • 설치된 패키지에 대한 업데이트가 준비되었는지 확인하려면 sudo snap refresh --list
  • 패키지를 수동으로 업데이트하려면: sudo snap refresh package_name
  • 패키지를 제거하려면 sudo snap remove package_name

관련: 개발자 및 열광자를 위한 최고의 Linux 노트북