补充说明
snap 是 Canonical 主导的跨发行版打包格式及其命令行客户端。每个 snap 打包为只读的 squashfs 镜像并挂载运行,自带依赖,因此同一个包能在 Ubuntu、Debian、Fedora 等系统上以相同方式安装;代价是体积较大、启动挂载稍慢。
命令的实际后端是 snapd 守护进程,所有操作都要先确保 snapd 服务在运行(systemctl status snapd)。常用流程是 snap find 搜索、snap install 安装、snap list 查看、snap refresh 升级、snap remove 卸载。
snap 有严格的沙箱(confinement):默认 strict 模式受 AppArmor/seccomp 限制,访问外部文件或设备需要 snap connect 授权;--classic 则完全不受限,仅用于官方审核过的软件。升级默认自动进行,可用 snap refresh --hold 暂停。
语法
snap [全局选项] 子命令 [参数]
常用子命令
find 关键词:在商店中搜索 snapinfo 包名:查看包信息、版本和可用通道install 包名:安装,--classic使用经典模式remove 包名:卸载list:列出已安装的 snaprefresh [包名]:升级到最新版本revert 包名:回退到上一个版本changes:查看正在进行的变更任务services 包名:查看包内的服务logs 包名:查看服务日志connect/disconnect:授权 / 撤销接口访问interfaces:列出接口及连接状态
实例
# 搜索并安装一个应用
snap find code
sudo snap install code --classic
# 查看已安装的 snap 与版本
snap list
# 从候选通道安装并指定版本
sudo snap install nextcloud --channel=latest/stable
# 手动升级全部 snap
sudo snap refresh
# 回退到上一个版本
sudo snap revert nextcloud
# 查看服务的运行状态与日志
snap services nextcloud
snap logs -n 100 nextcloud