Linux中snap简介
1. 概述
在本教程中,我们将学习如何使用Snap 包管理器、安装 snap 包(也称为 snap)、列出和管理已安装的 snap,以及在 Linux 系统上删除或禁用已安装的 snap。
包管理器是一组软件工具,可自动安装、升级、配置和删除计算机上的程序。Snap 是 Canonical 为使用 Linux 内核的操作系统开发的包管理器。
Snaps 是与所有依赖项打包在一起的程序,可以在所有主要的 Linux 发行版上运行。此外,快照在限制性安全沙箱内运行。因此,它们是安全的。此外,快照会自动更新。所以我们不需要继续手动检查更新。
2. Snap 生态系统的主要组成部分
Snap 生态系统中有五个主要组件:
- Snapd:快照守护进程;它是在 Linux 系统上管理和维护快照的后台服务
- Snap:用于在 Linux 系统上安装和管理 snap 的命令行界面工具
- Channels:频道确定安装了哪个版本的快照并检查更新
- Snap Store:开发人员发布他们的 snap 包和 Linux 用户安装它们的地方
- Snapcraft:构建快照的框架工具
现在我们已经掌握了有关 Snap 生态系统的足够信息,让我们安装它。
3.安装Snapd
我们需要从安装snapd开始,它是在 Linux 系统上管理 snap 的后台服务。
3.1. 在 Debian / Ubuntu 上
要在 Debian/Ubuntu 上安装snapd,我们可以运行以下命令:
$ sudo apt update
$ sudo apt install snapd
安装完成后,我们应该检查安装的版本:
$ snap version
snap 2.55.5
snapd 2.55.5
series 16
elementary 6.1
kernel 5.13.0-44-generic
我们已经成功安装snapd。
3.2. 在 Fedora 上
我们可以运行这个命令:
# dnf install snapd
之后,我们将在 Fedora 上成功安装snapd。
3.3. 在 Centos 和其他基于 Red Hat 的发行版上
我们应该运行这些命令:
# yum install epel-release
# yum install snapd
之后,我们将在系统上成功安装snapd。
3.4. 关于 Manjaro
我们应该输入这个命令:
# pacman -S snapd
之后,我们将在 Manjaro 上成功安装snapd。
4.启用系统单元
安装 *snapd 后,*我们应该运行这个命令来启用负责管理主 Snap 通信套接字的 systemd 单元:
$ sudo systemctl enable --now snapd.socket
运行上述命令后,Snap 生态系统将准备好进行交互。
5. 寻找快照
我们可以使用 snap命令与 Snap 生态系统进行交互。
snap find帮助我们在安装之前查找包。例如,如果我们要安装一个媒体播放器,我们可以查找它的类别:
$ snap find "media players"
Name Version Publisher Notes Summary
vlc 3.0.16 videolan✓ - The ultimate media player
foobar2000 1.6.11 mmtrt - foobar2000 is an advanced freeware audio player.
tizonia 0.22.0 tizonia - Cloud music from the Linux terminal
audio-recorder 3.0.5+rev1432+pkg-7b07 brlin - A free audio-recorder for Linux (EXTREMELY BUGGY)
mpv 0.26.0 casept - WARNING: THIS SNAP IS UNMAINTAINED. CONTACT ME IF YOU WISH TO MAINTAIN IT.
ktube-media-downloader 4 keshavnrj - Download / Play Media from various websites
Snap 为我们扩展了媒体播放器类别。
6. 获取有关快照的更多信息
让我们获取有关 VLC 快照的更多信息:
$ snap info vlc
name: vlc
summary: The ultimate media player
publisher: VideoLAN✓
store-url: https://snapcraft.io/vlc
contact: https://www.videolan.org/support/
license: unset
description: |
VLC is the VideoLAN project's media player.
Completely open source and privacy-friendly, it plays every multimedia file and streams.
...
snap info为我们提供了有关 snap 的更多信息。
7. 安装快照
现在我们已经找到了我们想要安装的包,我们可以安装它:
$ sudo snap install vlc
这将从稳定频道安装最新的 VLC 媒体播放器。此外,如果我们想从不同的渠道安装,我们可以用一个标志来指定它。 我们可以选择四个风险级别:
- Stable:适用于在生产环境中运行的绝大多数用户
- Candidate: 适用于需要在稳定部署之前测试更新的用户,或验证特定问题是否已解决的用户
- Beta:适用于想要测试最新功能的用户,通常在生产环境之外
- Edge:适用于希望密切跟踪开发的用户
例如,让我们选择 beta 风险级别:
$ sudo snap install --channel=beta vlc
vlc (beta) 3.0.17.3-203-gaefbee5bdb from VideoLAN✓ installed
我们已经从 beta 频道成功安装了最新版本的 VLC。
8. 列出已安装的快照
要列出系统上安装的所有快照的摘要,我们可以运行snap list:
$ snap list
Name Version Rev Tracking Publisher Notes
core18 20220428 2409 latest/stable canonical✓ base
ffmpeg 4.3.1 1286 latest/stable snapcrafters -
snapd 2.55.5 15904 latest/stable canonical✓ snapd
vlc 3.0.17.3-203-gaefbee5bdb 3007 latest/beta videolan✓ -
该命令已在屏幕上显示所有已安装快照的摘要。
此外,我们可以列出系统上安装的 snap 包的当前版本:
$ snap list vlc
Name Version Rev Tracking Publisher Notes
vlc 3.0.17.3-203-gaefbee5bdb 3007 latest/beta videolan✓ -
此外,我们可以通过添加*–all*列出已安装快照的所有修订 :
$ snap list --all vlc
Name Version Rev Tracking Publisher Notes
vlc 3.0.17.3-203-gaefbee5bdb 3007 latest/beta videolan✓ -
我们只有一个可用于 VLC 的修订版。
9. 更新快照
默认情况下,Snapd 每天检查四次更新,并在更新可用时安装更新。每次更新检查称为刷新。refresh 命令检查已安装的 snap 所跟踪的通道,并安装更新的版本(如果可用):
$ sudo snap refresh vlc
snap "vlc" has no updates available
没有可用于 VLC 的更新。我们还可以为所有已安装的快照运行刷新命令:
$ sudo snap refresh
All snaps up to date.
没有可用的更新。
10. 恢复快照
更新快照后,如果出于某种原因我们对新版本不满意,我们总是可以恢复到以前安装的版本:
$ sudo snap revert vlc
请注意,快照的数据也将恢复到之前的状态。
11. 启用/禁用和删除快照
如果我们不想再使用已安装的快照,但我们仍想保留快照及其数据以备后用,我们可以禁用它。稍后,如果我们想再次使用它,我们可以重新启用它:
$ sudo snap disable vlc
vlc disabled
$ sudo snap enable vlc
vlc enabled
要从系统中删除快照,我们可以运行snap remove:
$ sudo snap remove vlc
vlc removed
或者,我们可以通过添加*–revision*来删除已安装快照的特定版本 。请注意,我们需要事先禁用选定的修订:
$ sudo snap remove --revision=2344 vlc
vlc (revision 2344) removed
我们已成功删除了 VLC 的特定版本。