2024Linux上使用Snap包管理命令 这份使用指南要收藏
你在 ubuntu 上安装应用时是否遇到过困惑?ubuntu 及其衍生版上的「snap 软件包」可能对你来说并不陌生。这种由 canonical 推广的打包格式,不仅可以在 ubuntu 上安装和使用,而且还兼容几乎所有 linux 发行版。如果你对 snap 软件包不熟悉,或者想知道如何使用它,请继续阅读 泥小猴小编小新精心准备的文章。我们将在本文中深入探讨 snap 软件包的优点、安装方法以及一些最佳实践,让你的 ubuntu 使用体验更加顺畅。
虽然 Ubuntu 提供了优秀的图形化软件管理工具,我们绝大多数时间并不需要使用命令行来管理 Snap 软件包,但命令行拥有更强的功能和灵活性,学会如何使用可以帮你更好地掌控系统。
但由于种种原因,Snap 主要在 Ubuntu 及其衍生系统上使用。说直白一点就是火拼不过 Flatpak,你可以通过这篇文章了解 Flatpak 和 Snapcraft 的优缺点对比。一、什么是 Snap 和 Snapd
Snap 是由 Ubuntu 开发商 Canonical 推出的一种通用软件包格式,旨在简化软件分发,而且与具体的 Linux 发行版无关。
在不同的 Linux 发行版中,通常会使用各自的包管理器和格式,比如:
Debian 系使用的 APT Fedora/RHEL 系使用的 DNF Arch Linux 系使用的 Pacman 等但在不同系的 Linux 发行版中,各包管理器和软件包存在兼容性问题,而 Snap 类似于 Flatpak,它通过容器化技术,将应用程序及其依赖项打包成一个独立的包,来解决兼容性问题。以下是 Snap 的主要特点:
通用兼容性::可以在不同 Linux 发行版上运行,开发者无需为每个发行版创建单独的包。 隔离和安全性::每个 Snap 都在独立的环境中运行,不受其他应用影响,提升了安全性。 自动更新::Snap 应用可以在后台自动更新,让你始终使用最新版本。 依赖管理::Snap 包含了所有所需的依赖项,无需额外安装其他库。 轻松回滚::如果更新出现问题,可以方便地回滚到先前版本。除了 Snap,另一个关键组件是 snapd:,它是管理 Snap 包的后台服务,负责安装、更新和删除 Snap 包。简单来说:
Snap: 是实际的应用包,包含了应用程序和所有依赖项,能在任何支持 Snap 的 Linux 发行版上运行。 snapd: 是负责管理这些 Snap 包的后台服务,确保应用的安全性、更新以及与系统的隔离。接下来我们就进入实操阶段,学习如何在 Ubuntu 系统上使用 Snap 管理软件。
二、基本 Snap 命令
2.1 搜索软件包:
你可以通过关键字或软件包名称在 Snapcraft 应用商店中查找所需软件包:
snap find登录后复制
例如,使用以下命令搜索与 GIMP 相关的软件包:
snap find gimp登录后复制
搜索可用 snap 软件包
2.2 查看软件包详情:
可以使用以下命令,查看 Snap 软件包的详细信息,包括版本、描述、发布者和渠道等:
snap info登录后复制
查看 snap 软件包信息
输出结果中的关键信息包括:
Name::软件包的正式名称。 Publisher::发布者个人或组织。 Channels::包括以下版本和渠道选项: Stable::稳定版本。 Candidate::接近稳定的测试版本。 Beta::可能有新功能但不稳定。 Edge::最前沿的开发版本,通常不稳定。2.3 安装 Snap 软件包:
sudo snap install登录后复制
可以通过-channel=选项来指定渠道,从特定渠道安装软件包:
sudo snap install --channel=preview/candidate登录后复制
可以使用snap refresh命令,将已经安装的软件包切换到另一个渠道:
sudo snap refresh --channel=latest/stable登录后复制
2.4 卸载 Snap 软件包:
你可以通过以下命令来卸载 Snap 软件包,也可以一次卸载多个包:
sudo snap remove sudo snap remove登录后复制
要彻底删除软件及相关数据,可以添加--purge选项来清除用户数据或配置文件:
sudo snap remove --purge登录后复制
三、管理已安装的 Snap 软件包
3.1 列出已安装的 Snap 软件包:
要查看系统中已安装的 Snap 软件包,请使用以下命令:
snap list登录后复制
列出已安装的 snap 软件包
3.2 手动更新 Snap 软件包:
虽然 Snap 软件包通常会自动更新,但你也可以手动触发更新:
检查并更新所有已安装的软件包:
sudo snap refresh登录后复制
更新所有 snap 软件包
只更新特定的软件包:
sudo snap refresh登录后复制
3.3 仅查看可用更新:
要查看有哪些更新可用,而不立即安装,可以使用:
sudo snap refresh --list登录后复制
查看 snap 软件包可用更新
3.4 回滚到之前版本:
当某个 Snap 软件包遇到问题时,可以回滚到之前的版本:
sudo snap revert登录后复制
回滚 snap 软件包版本
四、Snap 进阶用法
4.1 禁用或启用 Snap 软件包:
你可以在不卸载和重装的情况下,临时停用或启用 Snap 软件包:
sudo snap disable # 禁用 Snap 软件包 sudo snap enable # 启用 Snap 软件包登录后复制
启用或禁用 snap 软件包
4.2 设置 Snap 自动更新时间:
默认情况下,Snap 软件包会每天自动更新 4 次。我们可以设置刷新计时器,调整自动更新的时间段。例如,将更新安排在夜间时段:
sudo snap set system refresh.timer=3:00-4:00登录后复制
设置 Snap 自动更新时段
4.3 切换更新渠道:
我们还可以随时切换特定软件包的更新渠道,例如「stable」、「beta」或「edge」:
sudo snap switch --channel=latest/stable # 更换渠道 sudo snap refresh # 应用更改登录后复制
4.4 跟踪和管理 Snap 更改:
使用以下命令,查看系统上 Snap 的所有更改记录,包括安装、更新、删除或回滚等操作:
snap changes登录后复制
查看 Snap 变更记录
通过更改 ID 查看特定更改的详细信息:
snap change <id></id>登录后复制
在遇到问题时,还可以按 ID 中止更改进程:
sudo snap abort <id></id>登录后复制
4.5 设置 Snap 别名:
为了简化复杂命令,我们可以通过Snap 的别名功能,为已安装的 Snap 应用程序创建快捷命令:
sudo snap alias # 指定别名sudo snap unalias # 取消别名登录后复制
4.6 使用 Snap 日志排查问题:
Snap 的日志功能是诊断 Snap 应用程序和服务问题的强大工具。你可以通过日志,识别启动失败或运行异常等问题。
sudo snap logs登录后复制
可以添加-f选项来实时监控错误日志输出,类似于 Linux 中的tail -f命令。