스냅 패키지 매니저 치트시트
스냅(Snap) 관리자를 통한 범용 리눅스 패키지
Snap는 Canonical에서 개발한 혁신적인 범용 패키지 관리 시스템으로, 컨테이너화된 애플리케이션, 자동 업데이트 및 강화된 보안을 Ubuntu 및 기타 Linux 배포판에 제공합니다.
이 멋진 이미지는 AI 모델 Flux 1 dev로 생성되었습니다.
Snap이란?
Snap은 Canonical이 Linux 커널을 사용하는 운영 체제를 위해 개발한 소프트웨어 패키징 및 배포 시스템입니다. Snap 패키지(“snaps”라고 함)는 다양한 Linux 배포판에서 작동하는 컨테이너화된 소프트웨어 패키지로, 일관된 애플리케이션 경험을 제공합니다. 시스템 라이브러리를 공유하는 전통적인 패키지와 달리, Snaps는 모든 종속성을 번들로 묶어 다양한 시스템에서 일관된 동작을 보장합니다.
주요 특징:
- 자주 포함(Self-Contained): 각 snap은 모든 종속성을 포함하므로 충돌이 없습니다.
- 자동 업데이트: 백그라운드에서 자동으로 업데이트가 진행됩니다(하루 4회 확인).
- 샌드박스(Sandboxing): AppArmor 격리로 보안 격리를 제공합니다.
- 범용성(Universal): Ubuntu, Fedora, Debian, Arch 등 다양한 배포판에서 작동합니다.
- 트랜잭션(Transaction): 업데이트는 원자성(atomic)을 가지며 롤백이 가능합니다.
- 백그라운드 서비스: snapd 데몬이 snaps와 업데이트를 관리합니다.
패키지 관리자 비교
Ubuntu는 여러 패키지 관리 시스템을 지원합니다. 주요 작업의 비교는 다음과 같습니다:
| 작업 | Snap | APT | Flatpak |
|---|---|---|---|
| 검색 | snap find keyword |
apt search keyword |
flatpak search keyword |
| 설치 | sudo snap install package |
sudo apt install package |
flatpak install flathub app.id |
| 설치된 목록 | snap list |
apt list --installed |
flatpak list --app |
| 정보 표시 | snap info package |
apt show package |
flatpak info app.id |
| 모두 업데이트 | sudo snap refresh |
sudo apt update && sudo apt upgrade |
flatpak update |
| 개별 업데이트 | sudo snap refresh package |
sudo apt install --only-upgrade pkg |
flatpak update app.id |
| 제거 | sudo snap remove package |
sudo apt remove package |
flatpak uninstall app.id |
| 정리 | snap remove --revision=N |
sudo apt autoremove |
flatpak uninstall --unused |
| 리포지토리 | Snap Store (내장) | /etc/apt/sources.list |
flatpak remote-add로 추가 |
주요 기능 비교
| 기능 | Snap | APT | Flatpak |
|---|---|---|---|
| 자동 업데이트 | 있음 | 없음 | 없음 |
| 샌드박스 | 있음 | 없음 | 있음 |
| 종속성 | 번들 포함 | 시스템 라이브러리 | 공유 런타임 |
| 패키지 크기 | 큼 (50-500MB) | 작음 (5-50MB) | 중간 (20-200MB) |
| 루트 권한 필요 | 필요 | 필요 | 불필요 (사용자 설치) |
| 시작 속도 | 느림 | 빠름 | 빠름 |
| 적합한 용도 | 범용 애플리케이션 | 시스템 패키지 | 데스크톱 애플리케이션 |
이 가이드 소개
이 가이드는 Snap에 초점을 맞춥니다. - Canonical의 자동 업데이트와 강력한 샌드백싱을 갖춘 범용 패키지 관리자입니다. Snap은 배포판 간 애플리케이션, 데스크톱 소프트웨어, 그리고 수동 개입 없이 자동 보안 업데이트가 필요한 시나리오에 이상적입니다.
다른 패키지 관리자에 대해:
- 📦 APT 치트시트 - 시스템 패키지와 라이브러리를 위한 Ubuntu의 전통적인 패키지 관리
- 📦 Flatpak 패키지 관리자 치트시트 - 세분화된 권한을 갖춘 크로스-디스트로 데스크톱 애플리케이션
- 📦 Snap vs Flatpak: 2025년 궁극의 가이드 - Snap과 Flatpak 범용 패키지 관리자의 종합 비교: 아키텍처, 성능, 보안 및 Linux 워크플로우에 가장 적합한 도구 선택.
각 패키지 관리자에는 고유한 장점이 있습니다. 자동 업데이트와 크로스-버전 호환성이 필요한 애플리케이션에는 Snap을, 시스템 패키지와 라이브러리에는 APT를, 세분화된 권한 제어가 필요한 데스크톱 애플리케이션에는 Flatpak을 사용하십시오.
Snap 패키지 관리 - 상세 가이드
Snapd 설치
Ubuntu (16.04+ 기본 설치)
Snap은 Ubuntu 16.04 및 이후 버전에서 기본으로 제공됩니다. Ubuntu를 새로 설치하는 경우, Ubuntu 24.04 설치 및 필수 도구 가이드를 참조하여 전체 설정 과정을 확인하십시오.
# snapd 설치 여부 확인
snap version
# 설치되지 않은 경우 설치
sudo apt update
sudo apt install snapd
# snapd 서비스 활성화
sudo systemctl enable --now snapd.socket
# 선택 사항: 클래식 snap 지원 활성화
sudo ln -s /var/lib/snapd/snap /snap
기타 배포판
Debian:
sudo apt update
sudo apt install snapd
sudo systemctl enable --now snapd.socket
Fedora:
sudo dnf install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
Arch Linux:
git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -si
sudo systemctl enable --now snapd.socket
Linux Mint:
Linux Mint에서 Snap을 설치하려면 호환성을 활성화해야 합니다. 새로 설치할 계획이라면, Linux Mint 재설치 및 유용한 도구 가이드를 참조하여 전체 설정 과정을 확인하십시오.
CentOS/RHEL:
sudo yum install snapd
sudo systemctl enable --now snapd.socket
주요 Snap 명령어
Snap 설치
기본 설치:
# 안정 채널에서 설치
sudo snap install package-name
# 특정 채널에서 설치
sudo snap install package-name --channel=beta
sudo snap install package-name --channel=edge
# 클래식 격리로 설치
sudo snap install package-name --classic
# 특정 버전/리비전 설치
sudo snap install package-name --revision=123
실제 사용 예시:
# VS Code 설치
sudo snap install code --classic
# Spotify 설치
sudo snap install spotify
# Docker 설치
sudo snap install docker
# VLC 미디어 플레이어 설치
sudo snap install vlc
# Chromium 브라우저 설치
sudo snap install chromium
# kubectl 설치
sudo snap install kubectl --classic
# Slack 설치
sudo snap install slack --classic
# Postman 설치
sudo snap install postman
# Android Studio 설치
sudo snap install android-studio --classic
# Node.js 설치
sudo snap install node --classic
Snap 검색
# Snap Store 검색
snap find keyword
# 상세 출력과 함께 검색
snap find keyword --verbose
# 특정 섹션 검색
snap find --section=development
# 예시
snap find "text editor"
snap find database
snap find "media player"
카테고리별 브라우징:
# 사용 가능한 섹션 목록
snap find --section
# 주요 섹션:
# - productivity (생산성)
# - development (개발)
# - server-and-cloud (서버 및 클라우드)
# - security (보안)
# - entertainment (엔터테인먼트)
# - photo-and-video (사진 및 비디오)
# - music-and-audio (음악 및 오디오)
설치된 Snap 목록
# 모든 설치된 snap 목록
snap list
# 더 많은 세부 정보 포함
snap list --all
# 특정 snap 표시
snap list package-name
# 발행자별 목록
snap list --all | grep "publisher-name"
출력 포함 항목:
- Name: Snap 패키지 이름
- Version: 현재 버전
- Rev: 리비전 번호
- Tracking: 추적 중인 채널
- Publisher: 인증된 발행자
- Notes: 격리 유형 및 플래그
Snap 정보 확인
# 상세 snap 정보 표시
snap info package-name
# 예시 출력 포함:
# - 설명
# - Snap ID
# - 발행자
# - 라이선스
# - 사용 가능한 채널
# - 설치된 버전
# - 갱신 날짜
예시:
snap info vlc
출력:
name: vlc
summary: The ultimate media player
publisher: VideoLAN✓
license: GPL-2.0+
description: |
VLC is a free and open source multimedia player...
snap-id: 123abc...
channels:
stable: 3.0.18 2023-03-15 (3078) 276MB -
candidate: ↑
beta: ↑
edge: 4.0.0~dev 2023-03-20 (3079) 280MB -
installed: 3.0.18 (3078) 276MB -
Snap 업데이트
모든 Snap 업데이트:
# 모든 설치된 snap 업데이트
sudo snap refresh
# 설치하지 않고 사용 가능한 업데이트 확인
snap refresh --list
특정 Snap 업데이트:
# 단일 snap 업데이트
sudo snap refresh package-name
# 특정 채널로 업데이트
sudo snap refresh package-name --channel=beta
# 특정 리비전으로 업데이트
sudo snap refresh package-name --revision=456
자동 업데이트:
Snap은 기본적으로 자동으로 업데이트됩니다. snapd 데몬은 하루 4회 업데이트를 확인합니다.
업데이트 일정 구성:
# 현재 리프레시 타이머 보기
snap refresh --time
# 리프레시 타이머 설정 (snapd 2.31+ 필요)
sudo snap set system refresh.timer=fri,23:00-01:00
# 일시적으로 업데이트 보류 (최대 90일)
sudo snap refresh --hold
# 특정 snap 보류
sudo snap refresh --hold package-name
# 보류 해제
sudo snap refresh --unhold
sudo snap refresh --unhold package-name
Snap 제거
# snap 제거 (데이터 유지)
sudo snap remove package-name
# snap 및 모든 데이터 제거 (정리)
sudo snap remove --purge package-name
# 특정 리비전 제거
sudo snap remove package-name --revision=123
구버전 정리:
기본적으로 Snap은 롤백을 위해 2-3개의 구버전을 유지합니다:
# 모든 리비전 목록
snap list --all package-name
# 특정 구버전 제거
sudo snap remove package-name --revision=old-rev-number
# 모든 구버전 제거 스크립트
#!/bin/bash
snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
sudo snap remove "$snapname" --revision="$revision"
done
Bash 스크립트 및 명령줄 작업에 대한 자세한 정보는 종합 Bash 치트시트를 참조하십시오.
Snap 실행
# snap 애플리케이션 실행
snap run package-name
# 특정 명령어로 실행
snap run package-name.command
# 예시: 특정 VS Code 명령어 실행
snap run code --list-extensions
# snap의 사용 가능한 명령어 표시
snap info package-name | grep "commands:"
Snap 채널 이해
채널을 통해 개발자는 다른 버전을 동시에 게시할 수 있습니다:
채널 유형
- stable: 출시 준비가 된 릴리스 (기본값)
- candidate: 릴리스 후보, 사전 릴리스 테스트
- beta: 새로운 기능이 포함된 베타 버전
- edge: 최신 개발 빌드, 불안정할 수 있음
채널 트랙
일부 snap은 여러 트랙(예: 주요 버전)을 가집니다:
# 예시: LXD 4.0 트랙 설치
sudo snap install lxd --channel=4.0/stable
# 예시: 특정 Kubernetes 버전 설치
sudo snap install microk8s --channel=1.28/stable
채널 전환
# 다른 채널로 전환
sudo snap refresh package-name --channel=beta
# stable로 되돌리기
sudo snap refresh package-name --channel=stable
# 사용 가능한 채널 보기
snap info package-name
Snap 격리 수준
Strict 격리
최대 보안, snap은 시스템과 격리됩니다:
# 대부분의 snap은 strict 격리를 사용합니다
sudo snap install vlc
특징:
- 제한된 파일 시스템 접근
- 하드웨어 접근을 위해 인터페이스 연결 필요
- AppArmor 프로파일이 보안을 강제
- 데스크톱 애플리케이션에 적합
Classic 격리
전통적인 패키지와 같이 전체 시스템 접근:
# 많은 개발 도구에 필요합니다
sudo snap install code --classic
sudo snap install kubectl --classic
특징:
- 샌드백싱 없음
- 전체 파일 시스템 접근
- 시스템 도구 및 IDE에 필요
- 보안은 낮지만 호환성은 높음
Devmode 격리
개발 모드, 격리 비활성화:
# 테스트/개발 전용
sudo snap install package-name --devmode
특징:
- 보안 제한 없음
- snap 개발 중에 사용
- 프로덕션 권장하지 않음
- 위반은 기록되지만 강제되지 않음
격리 확인
# 격리 수준 보기
snap list
# classic, devmode, 또는 strict(레이블 없음) 확인
# 상세 정보
snap info package-name | grep confinement
Snap 인터페이스 및 연결
인터페이스는 snap이 시스템 리소스와 어떻게 통신하는지를 정의합니다.
인터페이스 보기
# 모든 사용 가능한 인터페이스 목록
snap connections
# 특정 snap의 인터페이스 표시
snap connections package-name
# 모든 가능한 인터페이스 목록
snap interface
# 특정 인터페이스 세부 정보 표시
snap interface interface-name
일반적인 인터페이스
- home: 사용자 홈 디렉토리 접근
- network: 네트워크 접근
- audio-playback: 오디오 출력
- camera: 카메라 접근
- removable-media: USB 드라이브, SD 카드
- x11: X11 디스플레이 서버
- wayland: Wayland 디스플레이 서버
- opengl: GPU 가속
- pulseaudio: PulseAudio 사운드 서버
연결 관리
# 인터페이스 연결
sudo snap connect package-name:interface-name
# 인터페이스 분리
sudo snap disconnect package-name:interface-name
# 예시: 카메라 접근 허용
sudo snap connect package-name:camera
# 예시: 분리 가능한 미디어 접근 허용
sudo snap connect package-name:removable-media
자동 연결:
대부분의 인터페이스는 설치 시 자동으로 연결됩니다. 일부는 보안을 위해 수동 연결이 필요합니다.
고급 Snap 사용법
Snap 서비스
일부 snap은 백그라운드 서비스로 실행됩니다:
# 서비스 목록
snap services
# 특정 snap의 서비스 목록
snap services package-name
# 서비스 시작
sudo snap start package-name.service-name
# 서비스 중지
sudo snap stop package-name.service-name
# 서비스 재시작
sudo snap restart package-name.service-name
# 서비스 활성화 (부팅 시 시작)
sudo snap start --enable package-name.service-name
# 서비스 비활성화
sudo snap stop --disable package-name.service-name
# 서비스 로그 보기
snap logs package-name.service-name
# 실시간 로그 추적
snap logs -f package-name.service-name
# 마지막 N줄 표시
snap logs -n=50 package-name.service-name
Snap 구성
# snap 구성 보기
snap get package-name
# 특정 구성 키 보기
snap get package-name key-name
# 구성 설정
sudo snap set package-name key=value
# 예시
sudo snap set microk8s hostpath-storage=/data/k8s
sudo snap get microk8s hostpath-storage
# 구성 해제
sudo snap unset package-name key-name
Snap 별명(Aliases)
snap 명령어에 대한 단축키 생성:
# 별명 생성
sudo snap alias package-name.command alias-name
# 예시: kubectl 명령어 별명
sudo snap alias microk8s.kubectl kubectl
# 별명 목록
snap aliases
# 별명 제거
sudo snap unalias alias-name
# snap의 모든 별명 제거
sudo snap unalias package-name
Snap 레이아웃
레이아웃은 레거시 앱이 격리된 snap에서 작동하도록 합니다:
# snap 레이아웃 보기
snap info package-name | grep "layout:"
레이아웃은 snap 경로를 예상되는 시스템 경로로 매핑합니다.
Snap Store 및 게시
Snap Store 브라우징
웹 인터페이스:
- https://snapcraft.io/store 방문
- 카테고리별 브라우징
- 애플리케이션 검색
- 평점 및 리뷰 보기
명령줄:
# 추천 snap
snap find --section=featured
# 카테고리별
snap find --section=productivity
snap find --section=games
# 사설 snap (인증 필요)
snap find --private
파일에서 설치
# 로컬 snap 파일 설치
sudo snap install package-name.snap --dangerous
# 설치 및 인터페이스 연결
sudo snap install package-name.snap --dangerous --classic
참고: --dangerous는 로컬 파일의 서명 검증을 우회합니다.
Snap 문제 해결
일반적인 문제 및 해결책
Snap Store 로딩 안됨
# snapd 서비스 재시작
sudo systemctl restart snapd.service
# 서비스 상태 확인
sudo systemctl status snapd.service
# 로그 보기
sudo journalctl -u snapd.service -n 50
느린 Snap 시작
원인:
- 첫 실행 시 압축 해제
- 파일 시스템 마운트
- AppArmor 프로파일 로딩
해결책:
# 모든 인터페이스 사전 연결
sudo snap connect package-name:interface
# 필요하지 않은 인터페이스 비활성화
sudo snap disconnect package-name:interface
# snap 시작 시간 확인
time snap run package-name
연결 문제
# 네트워크 인터페이스 확인
snap connections package-name | grep network
# 네트워크 수동 연결
sudo snap connect package-name:network
# 방화벽 확인
sudo ufw status
Snap 설치 실패
# snap 캐시 지우기
sudo rm -rf /var/lib/snapd/cache/*
# snap 재설치
sudo snap remove package-name
sudo snap install package-name
# 디스크 공간 확인
df -h /var/lib/snapd
# 손상된 snap 상태 수정
sudo snap changes
sudo snap abort <change-id> # 멈춘 경우
AppArmor 거부
# AppArmor 로그 확인
sudo dmesg | grep DENIED
# 특정 snap 프로파일 보기
sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap.*
# AppArmor 다시 로드
sudo systemctl reload apparmor
Snap 리비전 충돌
# 모든 리비전 목록
snap list --all package-name
# 구버전 제거
sudo snap remove package-name --revision=old-number
# 이전 리비전으로 되돌리기
sudo snap revert package-name
# snap 변경 사항 확인
snap changes
Snap 디버깅
# 디버그 모드 활성화
sudo snap set system debug.snapd=true
# snap 환경 보기
snap run --shell package-name
# 다음 실행: env
# snap 파일 레이아웃 확인
ls -la /snap/package-name/current/
# snap 메타데이터 보기
cat /snap/package-name/current/meta/snap.yaml
# snap 실행 추적
snap run --trace-exec package-name
# snap 단언 확인
snap known assertion-type
성능 최적화
디스크 사용량 감소
# snap 스토리지 사용량 확인
du -sh /var/lib/snapd/snaps/*
# 구버전 자동 제거
# refresh.retain을 2로 설정 (최대 2개 구버전 유지)
sudo snap set system refresh.retain=2
# 수동 정리 스크립트
#!/bin/bash
# 모든 비활성화된 snap 리비전 제거
LANG=C snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
sudo snap remove "$snapname" --revision="$revision"
done
시작 성능 최적화
1. 인터페이스 사전 연결:
# 설치 시 자주 사용하는 인터페이스 연결
sudo snap connect package-name:home
sudo snap connect package-name:network
2. 병렬 리프레시 사용:
/var/lib/snapd/state.json 편집 (고급):
{
"data": {
"parallel-installs": 4
}
}
3. 백그라운드 업데이트 제한:
# 업데이트 창을 비활성 시간으로 설정
sudo snap set system refresh.timer=sun,02:00-04:00
Snap 성능 모니터링
# snap 프로세스 사용량 확인
ps aux | grep snap
# snap 서비스 리소스 모니터링
systemctl status snap.package-name.service-name
# snapd 리소스 사용량 보기
systemctl status snapd
# snap 마운트 포인트 확인
mount | grep snap
보안 모범 사례
발행자 확인
# 발행자 인증 확인
snap info package-name | grep publisher
# ✓ (인증됨) 또는 ✪ (별 - Canonical) 확인
가능하면 인증된 발행자로부터만 설치하십시오.
권한 검토
# 설치 전 필요한 인터페이스 확인
snap info package-name | grep plugs
# 설치 후 연결 검토
snap connections package-name
# 불필요한 인터페이스 분리
sudo snap disconnect package-name:interface-name
정기적 업데이트
# snap 최신 상태로 유지
sudo snap refresh
# 자동 보안 업데이트 활성화
# (기본 활성화)
snap refresh --time
설치된 Snap 감사
# 모든 snap 및 격리 목록
snap list
# devmode snap 확인 (보안 낮음)
snap list | grep devmode
# classic snap 검토 (전체 시스템 접근)
snap list | grep classic
Strict 격리 사용
더 나은 보안을 위해 strict 격리를 사용하는 snap을 선호하십시오:
# 설치 전 격리 확인
snap info package-name | grep confinement
# 프로덕션에서 --devmode 피하기
엔터프라이즈 환경에서의 Snap
프록시 구성
# HTTP 프록시 설정
sudo snap set system proxy.http="http://proxy:8080"
# HTTPS 프록시 설정
sudo snap set system proxy.https="https://proxy:8080"
# 프록시 설정 보기
snap get system proxy
오프라인 설치
# snap 다운로드
snap download package-name
# 오프라인 시스템으로 전달 및 설치
sudo snap install package-name_*.snap --dangerous
# 서명된 설치를 위해 단언 포함
sudo snap ack package-name_*.assert
sudo snap install package-name_*.snap
Snap Store 프록시
엔터프라이즈 환경에서는 Snap Store 프록시를 배포하십시오:
- snap 로컬 캐싱
- 사용 가능한 snap 제어
- 설치 모니터링
- 대역폭 사용량 감소
참조: https://docs.ubuntu.com/snap-store-proxy/
Snap 업데이트 관리
# snap별 자동 리프레시 비활성화 (프록시 필요)
sudo snap refresh --hold=forever package-name
# 유지보수 창 중 업데이트 예약
sudo snap set system refresh.timer=sat,02:00-04:00
# 업데이트 수동 승인
sudo snap refresh --list # 검토
sudo snap refresh package-name # 특정 업데이트
카테고리별 인기 Snap
개발 도구
sudo snap install code --classic # VS Code
sudo snap install intellij-idea-community --classic # IntelliJ
sudo snap install pycharm-community --classic # PyCharm
sudo snap install android-studio --classic # Android Studio
sudo snap install sublime-text --classic # Sublime Text
sudo snap install atom --classic # Atom Editor
sudo snap install postman # API 테스트
sudo snap install dbeaver-ce # 데이터베이스 도구
DevOps & 클라우드
sudo snap install kubectl --classic # Kubernetes CLI
sudo snap install helm --classic # Helm
sudo snap install microk8s --classic # 경량 K8s
sudo snap install docker # Docker
sudo snap install terraform --classic # Terraform
sudo snap install aws-cli --classic # AWS CLI
sudo snap install azure-cli --classic # Azure CLI
sudo snap install google-cloud-sdk --classic # GCP SDK
생산성
sudo snap install slack --classic # Slack
sudo snap install teams # MS Teams
sudo snap install discord # Discord
sudo snap install zoom-client # Zoom
sudo snap install mailspring # 이메일 클라이언트
sudo snap install joplin-desktop # 노트 앱
sudo snap install libreoffice # 오피스 스위트
멀티미디어
sudo snap install vlc # 비디오 플레이어
sudo snap install spotify # 음악 스트리밍
sudo snap install obs-studio # 화면 녹화
sudo snap install gimp # 이미지 편집기
sudo snap install inkscape # 벡터 그래픽
sudo snap install audacity # 오디오 편집기
sudo snap install kdenlive # 비디오 편집기
브라우저
sudo snap install chromium # Chromium
sudo snap install firefox # Firefox
sudo snap install opera # Opera
sudo snap install brave # Brave Browser
시스템 유틸리티
sudo snap install htop # 프로세스 모니터
sudo snap install bpytop # 시스템 모니터
sudo snap install speedtest-cli # 속도 테스트
sudo snap install certbot --classic # SSL 인증서
sudo snap install ngrok # 터널링
이러한 유틸리티 및 Ubuntu 일반 작업 시 생산성을 높이기 위해 Ubuntu 키보드 단축키 치트시트를 참조하여 효율적인 워크플로우 관리를 탐색하십시오.
적절한 패키지 관리자 선택
Snap 사용 시 ✅
적합한 경우:
- 배포판 간 호환성이 필요할 때
- 자동 업데이트가 중요한 경우
- 샌드백싱을 통한 보안이 우선인 경우
- 최신 애플리케이션 버전이 필요한 경우
- 데스크톱 애플리케이션
- IoT 및 임베디드 기기 (Ubuntu Core)
다른 패키지 관리자 사용 시
- APT: 시스템 패키지, 라이브러리 및 전통적인 Ubuntu 패키지 관리를 위한 APT 패키지 관리자 가이드 참조
- Flatpak: 세분화된 권한과 백그라운드 데몬이 없는 데스크톱 애플리케이션을 위한 Flatpak 패키지 관리자 가이드 참조
Snap 명령어 참조
빠른 명령어 치트시트
# 검색 및 설치
snap find keyword # snap 검색
sudo snap install name # snap 설치
sudo snap install name --classic # Classic 격리
sudo snap install name --channel=beta # 특정 채널
# 목록 및 정보
snap list # 설치된 목록
snap list --all # 구버전 포함
snap info name # snap 세부 정보
snap version # snapd 버전
# 업데이트
sudo snap refresh # 모두 업데이트
sudo snap refresh name # 특정 업데이트
snap refresh --list # 업데이트 확인
sudo snap refresh --hold # 업데이트 보류
# 제거
sudo snap remove name # snap 제거
sudo snap remove --purge name # 데이터와 함께 제거
sudo snap remove name --revision=N # 리비전 제거
# 서비스
snap services # 서비스 목록
sudo snap start name.service # 서비스 시작
sudo snap stop name.service # 서비스 중지
sudo snap logs name.service # 로그 보기
# 연결
snap connections # 연결 목록
snap connections name # snap 연결
sudo snap connect name:plug # 인터페이스 연결
sudo snap disconnect name:plug # 연결 해제
# 구성
snap get name # 구성 보기
sudo snap set name key=value # 구성 설정
snap get system # 시스템 구성
# 채널
sudo snap refresh name --channel=edge # 채널 전환
sudo snap track name # 추적 표시
# 별명
sudo snap alias name.cmd cmd # 별명 생성
snap aliases # 별명 목록
sudo snap unalias cmd # 별명 제거
# 문제 해결
snap changes # 최근 변경 사항
snap tasks <change-id> # 작업 세부 사항
snap abort <change-id> # 변경 사항 중단
sudo snap revert name # 이전 버전으로 되돌리기
결론
Snap 패키지 관리자는 컨테이너화를 통한 범용 패키징, 자동 업데이트 및 강화된 보안을 갖춘 Linux 애플리케이션 배포의 미래를 나타냅니다. 디스크 사용량 및 시작 성능에서 일부 타협이 있지만, 단순화된 종속성 관리, 배포판 간 호환성 및 일관된 업데이트의 이점은 현대 Linux 애플리케이션에 훌륭한 선택을 제공합니다.
애플리케이션을 배포하는 개발자, 업데이트를 관리하는 시스템 관리자, 또는 최신 소프트웨어를 원하는 사용자이든, Snap은 강력하고 안전하며 사용자 친화적인 패키지 관리 솔루션을 제공합니다.
주요 요약:
- Snap 패키지는 자주 포함되며 배포판 간에 작동합니다.
- 자동 업데이트는 애플리케이션의 보안과 최신 상태를 유지합니다.
- 샌드백싱은 격리를 통해 향상된 보안을 제공합니다.
- 여러 격리 수준은 보안과 기능을 균형을 잡습니다.
- 채널을 통해 안정성과 최신 기능 사이에서 선택할 수 있습니다.
- Snap은 데스크톱 애플리케이션 및 IoT 기기에 이상적입니다.
Snap Store를 탐색하여 범용 Linux 패키징의 편의를 경험해 보십시오!
유용한 링크
- Snap 공식 웹사이트
- Snap Store
- Snap 문서
- Snapcraft (Snap 빌드)
- Snap 포럼
- GitHub 저장소
- Ubuntu Snap 가이드
- Snap Store 프록시
- 인터페이스 참조
- 보안 정책