龙空技术网

Ubuntu Snap软件系统 一 初级使用指南

pineball 73

前言:

当前咱们对“ubuntu怎么备份”都比较注意,姐妹们都想要学习一些“ubuntu怎么备份”的相关内容。那么小编在网上收集了一些对于“ubuntu怎么备份””的相关知识,希望小伙伴们能喜欢,同学们快快来了解一下吧!

Snap软件是把一个或多个应用程序的捆绑起来的程序包,它们自成一体、安装简单、安全、跨平台且无依赖性,能够自动更新,通常是在一个封闭的、基于事务的环境中运行,并且兼容于许多不同的Linux发行版。除了易于安装、易于维护和易于升级之外,安全性和稳健性也是它们的主要特点。Snap软件可从 Snap Store(拥有数百万用户的公共应用程序商店)中查找并安装。

本文主要介绍在Ubuntu22.04中如何使用Snap功能,如何安装和更新,以及如何备份和删除Snap软件。

检查Snap是否安装

Snap可通过图形软件包管理器(如 Ubuntu 软件中心)进行安装和删除,但大多数高级功能只能通过 Linux 命令行实现。Ubuntu Linux系统默认支持 snap,运行 snap --version命令查看详细情况:

$ snap --versionsnap    2.61.3+22.04snapd   2.61.3+22.04series  16ubuntu  22.04kernel  6.5.0-26-generic
列出已安装的snap软件

在Ubuntu22.04 系统中,Snap与一些 Snap应用一起默认安装,使用 snap list 命令列出这些 Snap软件:

$ snap listName             Version        Rev    Tracking         Publisher   Notescore22           20231123       1033   latest/stable    canonical✓  basefirefox          120.0.1-1      3504   latest/stable    mozilla✓    -snapd            2.60.4         20290  latest/stable    canonical✓  snapd

命令输出中,Version和Rev(ersion)列分别显示了Snap软件的版本信息:

Version:开发人员指定的打包软件版本。Reversion:上传snap文件时商店(store)分配的序列号。

Version是开发人员分配给Snap软件的版本名称或编号,用以标识Snap提供给用户的一些具体功能。Rev是商店自动分配的一个编号,目的是在Snap系统中为Snap软件版本分配唯一标识。

查找Snap软件

目前,Spotify 、Slack 和 Chromium等许多流行应用程序都有snap软件包。如果需要查找最新的Snap软件可以通过Snap Store在线搜索功能进行查找,在关键词一栏中输入如 "Spotify"、"音乐 "或 "数学"搜索。

例如:要搜索名称或描述中包含 "媒体播放器 "的 Snap软件,可以在shell中输入 snap find "media player"命令:

$ snap find "media player"Name  Version  Developer    Notes  Summaryvlc   3.0.4     videolan✓   -      The ultimate media player.

在上述命令输出结果中,videolan 旁的表示Snap发布者已通过验证。通过验证的发布者(指的是机构、基金会和公司)在制作和维护高质量软件包方面值得信赖。

Snap软件类别

输入不带任何参数的 snap find 会返回一批系统推荐的Snap软件,可以通过增加“ --section= 参数” 来明确列出某一种类别的Snap软件。以下是一些常见类别参数:

art-and-design

books-and-reference

development

devices-and-iot

education

entertainment

featured

finance

games

health-and-fitness

music-and-audio

news-and-weather

personalisation

photo-and-video

productivity

science

security

server-and-cloud

social

utilities

全面了解Snap软件

使用 snap info 命令可以轻松查找特定Snap软件的更多详细信息。这些详细信息包括Snap的作用、发布者、提供的命令等。

snap info 命令输出的最后部分列出了Snap软件版本分支:

channels:  latest/stable:    3.0.19                      2023-10-13 (3721) 336MB -  latest/candidate: 3.0.19                      2023-10-02 (3721) 336MB -  latest/beta:      3.0.20-27-g795b1bc62b       2023-12-13 (3862) 336MB -  latest/edge:      4.0.0-dev-26928-g9bc7ded0f0 2023-12-13 (3863) 692MB -installed:          3.0.19                                 (3721) 336MB -

版本分支声明了新的 snap 软件版本动态,默认安装的latest/stable版本号。我们可以选择从不同的分支安装,从而实现测试新功能或安装应用程序的旧版本的目的。

安装Snap软件输入 snap install ,输入需要安装的Snap软件名称<snap-name>,开始安装:

sudo snap install vlc

首次运行安装时,一个或多个依赖项可能会与Snap软件一起自动安装。通过键盘输入“ ctrl+c” 可以安全地取消Snap安装操作,Snap系统将很干净地回滚到软件安装之前的状态。

我们还可以使用分支选项指定需要安装的软件版本分支:

sudo snap install --channel=edge vlc

安装后,可通过以下方式更改监控版本分支最新动态:

sudo snap switch --channel=stable vlc
运行Snap应用程序和命令

一般情况下,绝大多数Snap应用程序都能通过命令行或桌面启动器直接运行。如果直接执行命令不起作用,可以使用snap运行命令:

snap run vlc

已安装的Snap应用程序执行文件存放在 /snap/bin目录,它也会被添加到系统的 $PATH环境变量中。

更新已安装的Snap软件Snap软件会自动更新,如果需要手动检查更新,可以使用以下命令:

sudo snap refresh vlc

上述操作将检查Snap跟踪的默认版本分支,如果存在更新版本的软件,会立即下载安装。

改变系统默认跟踪的版本分支同时安装最新版本的软件:

sudo snap refresh --channel=beta vlc

默认情况下,在系统监测的版本分支中上线的新软件版本将在6小时以内自动安装。当然该配置选项可以手动调整,也可以使用 --hold 选项禁用。

暂停或停止自动更新

使用 snap refresh --hold 命令可无限期或在指定时间内暂停或推迟系统中单个或所有Snap软件的更新。

snap refresh --hold=<duration> <snap1> <snap2>...

时间长度单位可以是秒 (s)、分 (m) 或小时 (h),也可以是这些单位的组合。如果要无限期推迟更新,也可以使用 "forever" 参数。如果未指定持续时间,则默认为永久。

$ snap refresh --hold=24h firefoxGeneral refreshes of "firefox" held until 2023-10-26T14:10:53+01:00
恢复到较早版本使用 snap revert 命令可以将Snap软件还原到以前较早的版本。默认情况下,它会尝试恢复到前一个版本:
$ sudo snap revert vlcvlc reverted to 3.0.5-1
可以指定可选的 --revision 参数来限定恢复到某一个特定版本:
snap revert vlc --revision 500

此操作将还原Snap软件旧版本(Rev. 500)和与软件相关的配置数据。如果先前使用的版本来自不同的分支,则将安装该分支版本,但系统默认监测的版本分支不会改变。用户数据(如由Snap软件生成并存储在数据库中的数据)通常存储在公共目录中,不会被还原。

Snap软件不会自动更新到恢复之前的版本,snap refresh 命令的输出将继续显示 "所有Snap均为最新"。当发布者提供新的软件版本时,已还原的Snap软件将自动更新。此外,无论软件版本之前是否已被还原,如果在snap refresh命令中指定了Snap名称<snap-name>,那么该Snap会立即更新:

$ snap list --all vlcName  Version  Rev  Tracking  Publisher  Notesvlc   3.0.5-1  768  stable    videolan✓  -vlc   3.0.6    770  stable    videolan✓  disabled$ sudo snap refreshAll snaps up to date.$ sudo snap refresh vlcvlc 3.0.6 from VideoLAN✓ refreshed

上述命令输出的备注栏中显示Snap软件被还原之后,之前使用的最新软件版本属于“禁用”状态。

连接各类功能接口

Snap通过功能接口控制Snap软件访问系统资源权限,从而控制Snap应用程序在系统中能做什么和不能做什么。功能接口常用于设定Snap软件访问网络摄像头、录音和网络设备或读写 $HOME 目录和远程存储设备的权限,而Snap软件需要或能够提供哪些接口功能,取决于Snap软件的类型和自身需求。

要查看某个Snap软件正在使用哪些功能接口,以及它可以使用但没有使用哪些接口,可以输入命令 snap connections <snap-name> 进行查看:

$ snap connections vlcInterface       Plug                   Slot                 Notesaudio-playback  vlc:audio-playback     :audio-playback      -audio-record    vlc:audio-record       -                    -camera          vlc:camera             -                    -desktop         vlc:desktop            :desktop             -home            vlc:home               :home                -(...)

Slot是接口功能的提供者,而Plug是接口功能使用者,一个Slot可支持多个Plug连接。在上述命令输出中,我们发现摄像机接口没有连接,因为其Slot是空的。这意味着VLC无法访问任何已连接的摄像机。<snap-name>:<interface-name> 语法表示某Snap软件的某个功能接口。如果没有<snap-name>,例如 :audio-playback,则该组件将直接连接到系统接口。

如果要让VLC软件可以访问摄像机,可以使用 snap connect 命令连接:

snap connect vlc:camera

从上图中 snap connections vlc 命令的输出内容可以看到,VLC可以访问用户的/home目录,因为 vlc:home 接口连接到了系统的 $HOME 目录。这是一种自动连接,当某个Snap软件需要一些基本存储功能(如 VLC 访问个人视频和音频文件)时,Snap软件就会自动建立这种连接。

Snap软件存储数据的位置

Linux系统对大多数 Snap软件的使用环境进行严格限制,它们的执行环境和用户数据都与系统隔开。如果Snap软件需要用户访问文件,可以通过自动保存和加载用户主目录中的文件来实现。

可以通过 snap connections <snap-name> 命令的输出中看到是否使用了home功能接口:

$ snap connections nethackInterface  Plug          Slot   Noteshome       nethack:home  :home  -

当然无论Snap软件是否自动连接了hom功能接口,Snap软件都可以在 $HOME/snap/<snap-name>目录中存储用户数据,如数据库或配置文件。目前,Snap软件在自己目录中的存储数据的方式有两种:

用户数据只保存于某一特定版本中。Snap软件的数据存储在以软件修订版名称命名的数字目录中,如 55 或 56等。该软件版本更新后,用户数据通常会从旧版本目录复制到新版本目录里,因此如果软件从一个版本还原到另一个版本,就能全部恢复前一个版本的用户数据。$HOME/snap/<snap-name>目录中还包含一个 “current” 的符号链接,它用于指向当前激活的Snap 软件版本目录。用户数据可以在多个软件版本共享使用。在不同的软件版本之间实现用户数据共享,用户数据存储在名为 “common” 的目录中,目录中包含图像、音频缓存和数据库,这些数据不会在不同软件版本间复制。创建和恢复Snap软件快照

Snapshot(软件快照)是snapd服务程序为系统中一个或多个Snap软件存储的用户、系统和配置数据副本,Snap软件存放在 $HOME/snap/<snap-name> 和 /var/snap/<snap-name> 目录中的数据文件的快照一般都存储在 /var/lib/snapd/snapshots/目录中。

软件快照可通过 snap save 命令手动生成,也可在软件卸载时自动生成。软件快照可用于备份Snap软件的状态、将Snap软件恢复到先前的某一状态,以及将更新后的snapd软件恢复到先前的状态。

snap save 命令为所有已安装的Snap创建快照,如果单独指定某一软件,则单独为其创建软件快照:

$ sudo snap saveSet  Snap         Age    Version               Rev   Size   Notes30   core         1.00s  16-2.37~pre1          6229   250B  -30   core18       886ms  18                    543    123B  -30   go           483ms  1.10.7                3092   387B  -30   vlc          529ms  3.0.6                 770   882kB  -
restore 命令就是用指定快照中的相应数据替换当前的用户、系统和配置数据:
$ sudo snap restore 30Restored snapshot #30.

默认情况下,该命令会还原快照中的所有用户数据。如果只需还原某几个Snap软件数据,可以在命令行后边的一一列出<snap-name1><snap-name2> ...;还可以使用 --users=<usernames> 参数,还原特定用户的数据。目前,还不能通过snap restore 命令排除某一特定snap软件的系统和配置数据。

移除Snap软件要从系统中删除Snap软件及其内部用户、系统和配置数据,可以使用以下删除命令:

$ sudo snap remove vlcvlc removed

添加 --no-wait 选项可立即返回命令提示符,移除程序将在后台运行。

默认情况下,Snap软件的所有版本都将移除。要移除特定软件版本,在移除命令中添加 --revision=<revision-number> 参数。

在Snap软件被移除之前(Ubuntu Core 系统软件除外),程序的内部用户、系统和配置数据会自动保存为软件快照(需要snapd 2.39+),保留期限为31天。

要在不生成快照的情况下移除Snap软件,可以使用 --purge 参数:

$ sudo snap remove vlc --purgevlc removed

#ubuntu##linux##snap#

标签: #ubuntu怎么备份