$ 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软件以下是一些常见类别参数: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#(图片来源网络,侵删)
0 评论