Linux Command snap 软件包管理
1. 简介
在过去的几年里,Linux 社区在 Linux 系统上的包管理领域取得了一些显着的进步,特别是在通用或跨分发软件打包和分发方面。其中一项进步是由流行的Ubuntu Linux制造商Canonical开发的Snap包格式。
Snaps是跨发行版、无依赖关系且易于安装的应用程序,这些应用程序与所有依赖项打包在一起,可以在所有主要的 Linux 发行版上运行。从单个构建开始,一个 snap(应用程序)将在桌面、云和 IoT 上的所有受支持的 Linux 发行版上运行。支持的发行版包括 Ubuntu、Debian、Fedora、Arch Linux、Manjaro 和 CentOS/RHEL。
快照是安全的——它们被限制和沙盒化,因此它们不会危及整个系统。它们在不同的限制级别下运行(这是与基本系统和彼此隔离的程度)。更值得注意的是,每个快照都有一个由快照创建者根据快照的要求精心挑选的界面,以提供对其限制之外的特定系统资源的访问,例如网络访问、桌面访问等。
snap生态系统中的另一个重要概念是Channels。通道确定安装和跟踪哪个版本的快照以进行更新,它由跟踪、风险级别和分支组成并被细分。
snap包管理系统的主要组件有:
- snapd – 在 Linux 系统上管理和维护快照的后台服务。
- snap – 应用程序包格式和命令行界面工具,用于安装和删除 snap 以及在 snap 生态系统中执行许多其他操作。
- snapcraft – 用于构建快照的框架和强大的命令行工具。
- snap store——开发者可以共享他们的 snap,Linux 用户可以搜索和安装它们的地方。
此外,快照也会自动更新。您可以配置更新发生的时间和方式。默认情况下,snapd守护程序每天最多检查四次更新:每次更新检查称为刷新。您也可以手动启动刷新。
2 安装 Snapd
如上所述,snapd守护进程是后台服务,它通过实施限制策略和控制允许 snap 访问特定系统资源的接口来管理和维护Linux 系统上的snap环境。它还提供snap命令并用于许多其他用途。
要在您的系统上安装snapd软件包,请为您的 Linux 发行版运行适当的命令。
------------ [On Debian and Ubuntu] ------------
$ sudo apt update
$ sudo apt install snapd
------------ [On Fedora Linux] ------------
# dnf install snapd
------------ [On CentOS and RHEL] ------------
# yum install epel-release
# yum install snapd
------------ [On openSUSE - replace openSUSE_Leap_15.0 with the version] ------------
$ sudo zypper addrepo --refresh https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.0 snappy
$ sudo zypper --gpg-auto-import-keys refresh
$ sudo zypper dup --from snappy
$ sudo zypper install snapd
------------ [On Manjaro Linux] ------------
# pacman -S snapd
------------ [On Arch Linux] ------------
# git clone https://aur.archlinux.org/snapd.git
# cd snapd
# makepkg -si
在您的系统上安装snapd后,使用systemctl 命令启用管理主snap通信套接字的systemd单元,如下所示。
在Ubuntu及其衍生版本上,这应该由包安装程序自动触发。
$ sudo systemctl enable --now snapd.socket
请注意,如果snapd.socket
未运行,则无法运行snap命令。运行以下命令以检查它是否处于活动状态并启用以在系统启动时自动启动。
$ sudo systemctl is-active snapd.socket
$ sudo systemctl status snapd.socket
$ sudo systemctl is-enabled snapd.socket
$ sudo ln -s /var/lib/snapd/snap /snap
要检查系统上安装的snapd和 snap 命令行工具的版本,请运行以下命令。
$ snap version
在安装snap之前,您可以检查它是否存在于 snap store 中。例如,如果应用程序属于“chat servers
”或“media players
”类别,您可以运行这些命令来搜索它,这将在稳定频道中向商店查询可用包。
$ snap find "chat servers"
$ snap find "media players"
$ snap info rocketchat-server
$ sudo snap install rocketchat-server
您可以选择从不同的渠道安装:edge
、beta
或Candidate
,出于某种原因,分别使用--edge
、--beta
或--candidate
选项。或使用该--channel
$ sudo snap install --edge rocketchat-server
$ sudo snap install --beta rocketchat-server
$ sudo snap install --candidate rocketchat-server
3. 管理 snaps
3.1 查看已安装
$ snap list
要列出正在使用的快照的当前版本,请指定其名称。您还可以通过添加--all
选项列出其所有可用的修订。
$ snap list mailspring
OR
$ snap list --all mailspring
3.2 更新和恢复
refresh命令检查快照跟踪的通道,如果可用,它会下载并安装更新版本的快照。
$ sudo snap refresh mailspring
OR
$ sudo snap refresh #update all snaps on the local system
将应用程序更新到新版本后,您可以使用revert命令恢复到以前使用的版本。请注意,与软件关联的数据也将被还原。
$ sudo snap revert mailspring
现在,当您检查mailspring
的所有修订版时,最新修订版被禁用,以前使用的修订版现在处于活动状态。
$ snap list --all mailspring
3.3 禁用/启用和删除
#禁用
$ sudo snap disable mailspring
#开启
$ sudo snap enable mailspring
#删除
$ sudo snap remove mailspring
$ sudo snap remove --revision=482 mailspring
3.4 从 Snap 运行应用程序
snap可以提供您从图形用户界面或使用命令运行的单个应用程序(或一组应用程序)。默认情况下,所有与 snap 关联的应用程序都安装在基于 Debian 的发行版的/snap/bin/
目录下,以及基于RHEL 的发行版的/var/lib/snapd/snap/bin/
目录下。
$ ls /snap/bin/
OR
# ls /var/lib/snapd/snap/bin/
例如,要从命令行运行应用程序,只需输入其绝对路径名。
$ /snap/bin/mailspring
OR
# /var/lib/snapd/snap/bin/mailspring
要仅输入应用程序名称而不输入其完整路径名,请确保/snap/bin/或/var/lib/snapd/snap/bin/
在您的PATH
环境变量中(默认情况下应添加)。
# echo $PATH
如果/snap/bin/
或/var/lib/snapd/snap/bin/
目录在您的PATH
中,您只需键入应用程序的名称/命令即可运行应用程序:
$ mailspring
查看snap下可用的命令,请运行“ snap info snap-name
”命令,然后查看以下屏幕截图中突出显示的命令部分。
$ snap info mailspring
which mailspring
3.5 创建和使用 Snap Aliases
Snap还支持为应用程序创建别名。快照的默认(或标准)别名在启用之前必须经过公共审查过程,但您可以为本地系统创建别名。
您可以使用alias 命令为快照创建别名。
snap alias mailspring mls
要列出快照的别名,例如mailspring
,请运行以下命令。从现在开始,您可以使用别名来运行 snap。
snap aliases mailspring
snap unalias mls
3.6 管理 Snap 的服务
对于某些快照,底层功能通过作为守护程序或服务运行的应用程序公开,一旦安装快照,它们会自动启动在后台连续运行。此外,这些服务还可以在系统启动时自动启动。重要的是,单个快照可能包含多个应用程序和服务,它们协同工作以提供该快照的整体功能。
snap info rocketchat-server
您可以使用services命令交叉检查服务的快照。命令输出显示一个服务,它是否启用在系统启动时自动启动,以及它是否处于活动状态。
snap services rocketchat-server
要停止服务运行,例如Rocketchat,请使用stop命令。请注意,不建议执行此操作,因为手动停止快照服务可能会导致快照发生故障。
snap stop rocketchat-server
要启动服务,例如,rocketchat使用start命令。
snap start rocketchat-server
要使服务在系统引导时自动启动,请使用enable命令。
snap enable rocketchat-server
要防止服务在下次系统引导时自动启动,请使用disable命令。
snap disable rocketchat-server
要查看服务的日志,请使用带有-f选项的log命令,它允许您实时查看屏幕上的日志。
snap logs rocketchat-server
OR
snap logs -f rocketchat-server
3.7 创建和管理 Snap 的快照
Snapd为一个或多个快照存储用户、系统和配置数据的副本。您可以手动触发或将其设置为自动工作。这样,您可以备份快照的状态,将其恢复到以前的状态,以及将全新的快照安装恢复到以前保存的状态。
要手动生成快照,请使用“ snap save
”命令。要为mailspring创建快照,请运行以下命令:
snap save mailspring
如果未指定快照名称,snapd将为所有已安装的快照生成快照(添加--no-wait
选项以在后台运行进程以释放终端并允许您运行其他命令)。
snap save
要查看所有快照的状态,请使用saved
命令。您可以使用该--id
标志来显示特定快照的状态:
snap saved
OR
snap saved --id=2
您可以使用check-snapshot
命令和快照标识符(集 ID)验证快照的完整性:
snap check-snapshot 2
要使用特定快照中的相应数据恢复当前用户、系统和配置数据,请使用restore
命令并指定快照集 ID:
snap restore 2
要从系统中删除快照,请使用forget
命令。默认情况下会删除所有快照的数据,您可以指定快照仅删除其数据。
snap forget 2
OR
snap forget 2 mailspring
✈推荐阅读: