최근 몇 년 동안 리눅스 커뮤니티는 특히 리눅스 시스템에서의 패키지 관리에 있어서 놀라운 발전을 이루었습니다.특히 범용 또는 크로스 배포 소프트웨어 패키징 및 배포에 관한 부분입니다. 그러한 발전 중 하나는 Snap 패키지 형식인데, 이는 우분투 리눅스의 개발사인 Canonical에 의해 개발되었습니다.
스냅은 모든 주요 리눅스 배포판에서 실행되도록 모든 종속성을 포함하여 패키징된 크로스 배포, 종속성 없는 및 설치가 쉬운 애플리케이션입니다. 단일 빌드로 스냅(애플리케이션)은 데스크톱, 클라우드 및 IoT에서 모든 지원되는 리눅스 배포판에서 실행됩니다. 지원되는 배포판에는 우분투, 데비안, 페도라, 아치 리눅스, 만자로 및 CentOS/RHEL이 포함됩니다.
또한 스냅은 안전합니다. 스냅은 전체 시스템을 손상시키지 않도록 격리되고 샌드박스화되어 있습니다. 이들은 기본 시스템 및 서로와의 격리 정도인 격리 수준에서 실행됩니다. 더 중요한 것은, 각 스냅은 스냅의 요구 사항에 따라 스냅 생성자가 신중하게 선택한 인터페이스를 통해 네트워크 액세스, 데스크톱 액세스 등과 같은 특정 시스템 리소스에 액세스할 수 있도록 제공됩니다.
snap 생태계에서 또 다른 중요한 개념은 채널입니다. 채널은 snap의 어떤 릴리스가 설치되고 업데이트를 추적하는지 결정하며, 트랙, 위험 수준 및 브랜치로 구성되고 세분화됩니다.
스냅 패키지 관리 시스템의 주요 구성 요소는 다음과 같습니다:
- snapd – 리눅스 시스템에서 snap을 관리하고 유지하는 백그라운드 서비스입니다.
- snap – 응용 프로그램 패키지 형식 및 snap 생태계에서 스냅을 설치하고 제거하고 기타 많은 작업을 수행하는 명령 줄 인터페이스 도구입니다.
- snapcraft – 스냅을 빌드하기 위한 프레임워크 및 강력한 명령 줄 도구입니다.
- 스냅 스토어 – 개발자가 스냅을 공유하고 리눅스 사용자가 검색하고 설치할 수 있는 장소입니다.
또한, 스냅은 자동으로 업데이트됩니다. 업데이트가 언제 발생하는지 및 어떻게 구성할 수 있습니다. 기본적으로 snapd 데몬은 하루에 최대 네 번 업데이트를 확인합니다: 각 업데이트 확인은 새로 고침이라고 합니다. 수동으로 새로 고침을 시작할 수도 있습니다.
리눅스에서 Snapd 설치 방법
위에서 설명한대로, snapd 데몬은 리눅스 시스템에서 snap 환경을 관리하고 유지하는 백그라운드 서비스입니다. confinement 정책을 시행하고 snap이 특정 시스템 리소스에 액세스할 수 있도록 인터페이스를 제어합니다. 또한 snap 명령을 제공하고 다른 많은 목적을 제공합니다.
snapd 패키지를 시스템에 설치하려면 리눅스 배포판에 맞는 명령어를 실행하세요.
------------ [On Debian and Ubuntu] ------------ $ sudo apt update $ sudo apt install snapd ------------ [On Fedora Linux] ------------ # dnf install snapd ------------ [On CentOS and RHEL] ------------ # yum install epel-release # yum install snapd ------------ [On openSUSE - replace openSUSE_Leap_15.0 with the version] ------------ $ sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.0 snappy $ sudo zypper --gpg-auto-import-keys refresh $ sudo zypper dup --from snappy $ sudo zypper install snapd ------------ [On Manjaro Linux] ------------ # pacman -S snapd ------------ [On Arch Linux] ------------ # git clone https://aur.archlinux.org/snapd.git # cd snapd # makepkg -si
시스템에 snapd를 설치한 후, 다음과 같이 systemctl 명령어를 사용하여 주요 snap 통신 소켓을 관리하는 systemd 유닛을 활성화하세요.
우분투와 그 파생 배포판에서는 패키지 설치 프로그램에 의해 자동으로 트리거되어야 합니다.
$ sudo systemctl enable --now snapd.socket
snap 명령어는 snapd.socket이 실행 중이지 않으면 실행할 수 없습니다. 다음 명령어를 실행하여 활성화되어 있고 시스템 부팅 시 자동으로 시작되도록 설정되어 있는지 확인하세요.
$ sudo systemctl is-active snapd.socket $ sudo systemctl status snapd.socket $ sudo systemctl is-enabled snapd.socket

다음으로, /var/lib/snapd/snap과 /snap 사이에 심볼릭 링크를 생성하여 클래식 스냅 지원을 활성화하세요.
$ sudo ln -s /var/lib/snapd/snap /snap
시스템에 설치된 snapd와 스냅 명령줄 도구의 버전을 확인하려면 다음 명령어를 실행하세요.
$ snap version

리눅스에서 스냅 설치 방법
snap 명령어를 사용하면 스냅을 설치, 구성, 새로 고침 및 제거할 수 있으며, 더 큰 스냅 생태계와 상호 작용할 수 있습니다.
설치하기 전에 snap이 스냅 스토어에 있는지 확인할 수 있습니다. 예를 들어, 애플리케이션이 ” 채팅 서버 ” 또는 ” 미디어 플레이어 ” 카테고리에 속하는 경우, 이를 검색하기 위해 다음 명령을 실행할 수 있습니다. 이 명령은 안정 채널에서 사용 가능한 패키지를 스토어에서 조회합니다.
$ snap find "chat servers" $ snap find "media players"

자세한 snap 정보를 표시하려면, 예를 들어 rocketchat-server, 해당 이름이나 경로를 지정할 수 있습니다. 이름은 스냅 스토어와 설치된 스냅 모두에서 찾습니다.
$ snap info rocketchat-server

시스템에 snap을 설치하려면, 예를 들어 rocketchat-server, 다음 명령을 실행합니다. 옵션이 제공되지 않으면 ” stable ” 채널을 추적하는 snap이 엄격한 보안 제약 조건으로 설치됩니다.
$ sudo snap install rocketchat-server

다른 채널에서 설치하도록 선택할 수 있습니다. edge, beta, 또는 candidate을 사용하여 이러한 옵션 중 하나를 사용하십시오. 또는 --channel
옵션을 사용하여 설치할 채널을 지정할 수 있습니다.
$ sudo snap install --edge rocketchat-server $ sudo snap install --beta rocketchat-server $ sudo snap install --candidate rocketchat-server
Linux에서 Snaps 관리하기
이 섹션에서는 Linux 시스템에서 스냅을 관리하는 방법을 배웁니다.
설치된 Snaps 보기
시스템에 설치된 snaps의 요약을 표시하려면 다음 명령을 사용하십시오.
$ snap list

현재 사용 중인 스냅의 현재 버전을 나열하려면 해당 이름을 지정하십시오. --all
옵션을 추가하여 모든 사용 가능한 리비전을 나열할 수도 있습니다.
$ snap list mailspring OR $ snap list --all mailspring

스냅 업데이트 및 되돌리기
지정된 스냅 또는 지정된 스냅이 없는 경우 시스템의 모든 스냅을 다음과 같이 업데이트할 수 있습니다. refresh 명령은 스냅이 추적하는 채널을 확인하고 사용 가능한 경우 스냅의 새 버전을 다운로드하고 설치합니다.
$ sudo snap refresh mailspring OR $ sudo snap refresh #update all snaps on the local system

앱을 새 버전으로 업데이트한 후에는 revert 명령을 사용하여 이전에 사용한 버전으로 되돌릴 수 있습니다. 소프트웨어와 관련된 데이터도 되돌려집니다.
$ sudo snap revert mailspring

mailspring의 모든 리비전을 확인하면 최신 리비전은 비활성화되어 있고, 이전에 사용한 리비전이 현재 활성화되어 있습니다.
$ snap list --all mailspring

스냅 비활성화/활성화 및 제거
사용하지 않으려는 경우 스냅을 비활성화할 수 있습니다. 비활성화된 경우 스냅의 이진 및 서비스는 더 이상 사용할 수 없지만 모든 데이터는 그대로 유지됩니다.
$ sudo snap disable mailspring
스냅을 다시 사용해야 할 경우 다시 활성화할 수 있습니다.
$ sudo snap enable mailspring
시스템에서 스냅을 완전히 제거하려면 remove 명령을 사용하십시오. 기본적으로 스냅의 모든 리비전이 제거됩니다.
$ sudo snap remove mailspring
특정 리비전을 제거하려면 다음과 같이 --revision
옵션을 사용하십시오.
$ sudo snap remove --revision=482 mailspring
주의해야 할 중요한 점은 스냅을 제거할 때 해당 데이터(내부 사용자, 시스템 및 구성 데이터와 같은)가 snapd(버전 2.39 이상)에 의해 스냅샷으로 저장되고 시스템에 31일 동안 보관된다는 것입니다. 31일 이내에 스냅을 다시 설치하면 데이터를 복원할 수 있습니다.
결론
스냅은 리눅스 커뮤니티에서 점점 더 인기를 얻고 있으며 모든 리눅스 배포판에 소프트웨어를 설치하는 간단한 방법을 제공합니다. 이 가이드에서는 리눅스에서 스냅을 설치하고 사용하는 방법을 보여주었습니다. snapd를 설치하는 방법, 스냅을 설치하는 방법, 설치된 스냅을 보는 방법, 스냅을 업데이트하고 되돌리는 방법, 스냅을 비활성화/활성화하고 제거하는 방법에 대해 다루었습니다.
아래의 피드백 양식을 통해 질문하거나 저희에게 연락할 수 있습니다. 이 가이드의 다음 부분에서는 리눅스에서 스냅(명령, 별칭, 서비스 및 스냅샷) 관리에 대해 다룰 것입니다.