Snap 是 Canonical 开发的软件打包和部署系统,提供:
# 检查是否已安装
snap version
其他发行版安装:
# Debian
sudo apt update
sudo apt install snapd
# Fedora
sudo dnf install snapd
# Arch Linux
sudo pacman -S snapd
sudo systemctl enable --now snapd.socket
# openSUSE
sudo zypper addrepo https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.4/snappy.repo
sudo zypper install snapd
# 搜索应用
snap find <软件名>
snap search <软件名>
# 示例
snap find vlc
snap search "text editor"
2. 安装软件
# 安装应用
sudo snap install <软件名>
# 示例
sudo snap install vlc
sudo snap install chromium
sudo snap install spotify
# 安装特定版本
sudo snap install <软件名> --channel=<通道名>
# 安装时禁用自动更新
sudo snap install <软件名> --no-autorefresh
3. 查看已安装软件
# 查看所有已安装的 Snap
snap list
# 查看应用详细信息
snap info <软件名>
snap info firefox
4. 更新软件
# 更新所有 Snap
sudo snap refresh
# 更新指定应用
sudo snap refresh <软件名>
# 检查可用的更新
snap refresh --list
5. 卸载软件
# 卸载应用
sudo snap remove <软件名>
# 保留数据卸载
sudo snap remove --purge <软件名>
6. 管理版本通道
# 查看可用通道
snap info <软件名> | grep channels:
# 切换到其他通道
sudo snap refresh <软件名> --channel=<通道名>
# 常见通道类型
stable # 稳定版(默认)
candidate # 候选版
beta # 测试版
edge # 开发版
# 示例:切换到 beta 通道
sudo snap refresh vlc --channel=beta
7. 管理修订版本
# 查看修订版本
snap list --all
# 恢复/回滚到旧版本
sudo snap revert <软件名>
# 保留特定修订版本
sudo snap hold <软件名>
sudo snap unhold <软件名>
# 查看应用权限
snap connections <软件名>
# 连接接口(授予权限)
sudo snap connect <软件名>:<接口>
# 断开接口(撤销权限)
sudo snap disconnect <软件名>:<接口>
# 示例:授予 Firefox 访问相机的权限
sudo snap connect firefox:camera
2. 数据管理
# 查看和修改配置
snap get <软件名>
snap set <软件名> <配置项>=<值>
# 示例:设置代理
snap set system proxy.http="http://proxy.example.com:8080"
3. 服务管理(适用于后台服务)
# 查看服务状态
snap services
# 启停服务
sudo snap start <服务名>
sudo snap stop <服务名>
sudo snap restart <服务名>
# 自动清理旧版本(默认开启)
# 手动清理所有旧版本
sudo snap set system refresh.retain=2 # 保留2个旧版本
sudo snap system prune
2. 解决常见问题
# 重置应用(清空数据和配置)
sudo snap disable <软件名>
sudo snap enable <软件名>
# 修复损坏的 Snap
sudo snap repair
# 查看日志
sudo journalctl -u snapd
3. 别名管理
# 查看所有别名
snap aliases
# 创建别名(让命令更易用)
sudo snap alias <snap应用>.<命令> <别名>
# 示例:为 vlc 创建别名
sudo snap alias vlc.vlc vlc
# 删除别名
sudo snap unalias <别名>
# 开发工具
sudo snap install code --classic # VS Code
sudo snap install sublime-text --classic # Sublime Text
sudo snap install docker # Docker
sudo snap install node --classic # Node.js
# 媒体工具
sudo snap install vlc # 视频播放器
sudo snap install spotify # 音乐
sudo snap install gimp # 图像编辑
# 办公应用
sudo snap install libreoffice # 办公套件
sudo snap install mailspring # 邮件客户端
# 浏览器
sudo snap install firefox # Firefox
sudo snap install chromium # Chromium
| 特性 | Snap | APT (.deb) |
|---|---|---|
| 安装源 | Snap Store | 系统仓库/PPA |
| 更新频率 | 自动、独立 | 跟随系统更新 |
| 依赖处理 | 自包含 | 系统共享 |
| 隔离性 | 完全沙盒 | 部分隔离 |
| 启动速度 | 稍慢(首次) | 快 |
修改 /etc/systemd/system/snapd.service.d/ 下的配置文件:
# 限制更新带宽
[Service]
ExecStart=/usr/lib/snapd/snapd --limit-bps=1024000
# 设置代理
Environment="http_proxy=http://proxy:port"
Environment="https_proxy=http://proxy:port"
# 导出已安装列表
snap list | awk 'NR>1 {print $1}' > snap-list.txt
# 批量安装
while read pkg; do
sudo snap install $pkg
done < snap-list.txt
清理脚本
#!/bin/bash
# 清理旧版本和缓存
sudo snap system prune
sudo rm -rf /var/lib/snapd/cache/*
总结建议:
sudo snap system prune掌握这些命令,就能高效管理 Linux 上的 Snap 应用了!