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

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

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

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

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

이러한 문제에 대한 한 가지 솔루션은 애플리케이션 패킹 및 배포 시스템입니다. 팔팔한 이 중 가장 인기 있는 것 중 하나입니다. Click이라는 패키징 및 배포 시스템을 기반으로 합니다. 우분투 터치 계획. 앱 이미지 그리고 플랫팩 당신이 만난 다른 사람들입니다.

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

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

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

  Netdata를 사용하여 Linux에서 실시간 네트워크 모니터링을 얻는 방법

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

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

스냅 설치 중

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

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

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

sudo dnf install snapd

그만큼

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

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

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

다음을 입력합니다.

snap version

그만큼

스냅 패키지 설치

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

찾고 설치하기 위해 다음을 입력합니다. 김프 이미지 편집기:

snap find gimp

그만큼

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

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

sudo snap install gimp

그만큼

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

ㅏ

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

다음을 입력합니다.

df | grep gimp

그만큼

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

  Linux에서 Winepaks를 설정하는 방법

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

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

다음을 입력합니다.

df -t squashfs

그만큼

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

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

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

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

snap list

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

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

Name                 Version                    Rev   Tracking  Publisher    Notes
core                 16-2.43.3                  8689  stable    canonical*   core
core18               20200124                   1668  stable    canonical*   base
gimp                 2.10.18                    252   stable    snapcrafters -
gnome-3-26-1604      3.26.0.20191114            98    stable/…  canonical*   -
gnome-3-28-1804      3.28.0-16-g27c9498.27c9498 116   stable    canonical*   -
gnome-calculator     3.34.1+git1.d34dc842       544   stable/…  canonical*   -
gnome-characters     v3.32.1+git3.b9120df       399   stable/…  canonical*   -
gnome-logs           3.34.0                     81    stable/…  canonical*   -
gnome-system-monitor 3.32.1-3-g0ea89b4922       127   stable/…  canonical*   -
gtk-common-themes    0.1-28-g1503258            1440  stable/…  canonical*   -

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

이름: 설치된 스냅 패키지의 이름입니다.
버전: 스냅 패키지에 있는 소프트웨어의 버전 번호입니다.
Rev: 스냅 패키지의 개정 번호입니다.
추적: 이 스냅 패키지가 업데이트를 모니터링하는 채널입니다. 네 가지가 있습니다.
안정: 기본 채널입니다. 이름에서 알 수 있듯이 이 채널에는 가장 안정적인 패키지가 포함되어 있습니다.
후보: 이 채널은 덜 안정적이지만 코드가 완전한 릴리스 후보 수준 소프트웨어를 포함하고 있기 때문에 매우 가깝습니다. 안정적인 채널로 이동하기 전에 최종 테스트를 거칩니다.
베타: 이 채널은 개발 주기 후반의 품질이지만 안정적이라는 보장은 없습니다.
Edge: 초기 빌드 테스터용. 중요한 작업이나 프로덕션 컴퓨터에서 이 채널을 사용하면 안 됩니다. 여기 드래곤이 있습니다!

  AT&T U-verse 게이트웨이 인증 실패 해결 방법

게시자: 스냅 패키지를 출시한 개인, 회사 또는 조직입니다. 확인된 게시자(및 터미널 창에서 유니코드) 게시자 이름 옆에 녹색 확인 표시가 나타납니다. 확인 표시가 표시되지 않으면 별표가 표시됩니다.
.

참고: 모든 의견이나 추가 정보가 여기에 표시됩니다.

스냅 채널

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

snap info gtk-common-themes

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

그만큼

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

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

sudo snap refresh gtk-common-themes --channel=beta

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

그만큼

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

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

sudo snap refresh --list

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

그만큼

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

sudo snap refresh gtk-common-themes

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

그만큼

스냅 패키지 제거

sudo snap remove gimp

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

그만큼

스냅 치트 시트

스냅 패키지를 사용하는 것은 매우 간단하지만 도움이 될 몇 가지 명령 목록을 작성했습니다.
패키지를 검색하려면: snap find package_name
패키지를 설치하려면: sudo snap install package_name
설치된 모든 패키지를 보려면: 스냅 목록
단일 패키지에 대한 정보를 얻으려면: 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