snap 命令
基本介绍
snap 是 Canonical 公司开发的通用软件包管理系统,用于在 Linux 发行版上分发和管理应用程序。Snap 包是自包含的,包含应用程序运行所需的所有依赖,实现了跨发行版的应用程序部署。Snap 支持自动更新、沙箱隔离等特性。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
语法
snap [选项] <命令> [参数]
常用命令
安装命令
| 命令 | 说明 |
|---|
snap install <package> | 安装指定 snap 包 |
snap install <package> --channel=<channel> | 从指定通道安装 |
snap refresh <package> | 更新指定 snap 包 |
snap refresh | 更新所有已安装的 snap 包 |
删除命令
| 命令 | 说明 |
|---|
snap remove <package> | 删除指定 snap 包 |
snap remove <package> --purge | 删除包并清除数据 |
查询命令
| 命令 | 说明 |
|---|
snap list | 列出已安装的 snap 包 |
snap find <keyword> | 搜索可用的 snap 包 |
snap info <package> | 显示包详细信息 |
snap changes | 显示最近的 snap 操作历史 |
snap services | 显示正在运行的 snap 服务 |
管理命令
| 命令 | 说明 |
|---|
snap switch <package> --channel=<channel> | 切换包的通道 |
snap revert <package> | 回滚到上一个版本 |
snap disable <package> | 禁用 snap 包 |
snap enable <package> | 启用 snap 包 |
snap connect <package>:<plug> <slot> | 连接接口 |
snap disconnect <package>:<plug> | 断开接口 |
系统命令
| 命令 | 说明 |
|---|
snap version | 显示 snap 版本信息 |
snap help | 显示帮助信息 |
snap login | 登录 Snap Store |
snap logout | 退出登录 |
常用选项
| 选项 | 说明 |
|---|
--channel=<channel> | 指定通道(stable/candidate/beta/edge) |
--classic | 使用经典模式安装(不沙箱化) |
--devmode | 使用开发模式安装 |
--purge | 删除包时清除所有数据 |
-y | 自动确认操作 |
使用示例
1. 安装 snap 包
snap install nginx
2. 从特定通道安装
snap install nginx --channel=beta
3. 使用经典模式安装
snap install vlc --classic
4. 列出已安装的包
snap list
5. 搜索包
snap find "web server"
6. 查看包信息
snap info nginx
7. 更新所有包
snap refresh
8. 更新指定包
snap refresh nginx
9. 删除包
snap remove nginx
10. 删除包并清除数据
snap remove nginx --purge
11. 切换包的通道
snap switch nginx --channel=stable
12. 回滚到上一个版本
snap revert nginx
13. 禁用包
snap disable nginx
14. 启用包
snap enable nginx
配置文件
主配置文件
/etc/snapd/snapd.conf - snapd 的主配置文件/var/lib/snapd/ - snap 数据目录
配置文件示例
# /etc/snapd/snapd.conf
refresh.timer=00:00-04:00
配置选项说明
| 选项 | 说明 |
|---|
refresh.timer | 更新时间窗口 |
refresh.hold | 暂停更新的时长 |
core.refresh.schedule | core 组件更新计划 |
network.disable.http | 禁用 HTTP 网络 |
实用技巧
1. 查看更新历史
snap changes
2. 查看正在运行的服务
snap services
3. 查看接口连接状态
snap connections nginx
4. 连接接口
snap connect nginx:network-bind
5. 设置更新时间窗口
snap set system refresh.timer=02:00-04:00
6. 暂停更新
snap refresh --hold=24h
Snap 通道说明
| 通道 | 说明 |
|---|
stable | 稳定版,推荐用于生产环境 |
candidate | 候选版,即将成为稳定版 |
beta | 测试版,包含新功能 |
edge | 开发版,最新但可能不稳定 |
相关命令
| 命令 | 说明 |
|---|
apt | Debian/Ubuntu 包管理器 |
flatpak | 另一个通用包管理系统 |
snapcraft | 构建 snap 包的工具 |
snapd | snap 守护进程 |
注意事项
- 权限要求:大多数命令需要 root 权限,建议使用
sudo - 网络要求:需要网络连接来下载包和更新
- 经典模式:某些应用需要 --classic 模式,不使用沙箱
- 更新机制:snap 会自动更新,可能影响生产环境
- 存储位置:snap 包安装在
/snap/ 目录下
总结
snap 是一个跨发行版的软件包管理系统,提供了自包含、自动更新、沙箱隔离等特性。它简化了应用程序的部署和管理,特别适合需要跨多个发行版运行的应用程序。