Ubuntu 18.04及Snap体验(4)

7.默认情况下,是通过stable的通道进行安装的(还记得之前安装communitheme时候我用的edge通道吗?)。当然即使你安装好了stable通道的VLC,当然也还可以切换到别的通道。

snap switch–channel=candidate vlc

snap refresh

之后就切换到了candidate(候选发行版)的vlc了,你可以通过刚才的vlc –-version来查看你你的vlc版本。

8.看似很简单的Snap是不是就完了呢?基本可以这么说吧!不过还有一个snap run -shell的命令呢。通过snap run -shel vlc可以给你一个shell让你拥有更多的snap权利。

你可以在/snap中找到snap的文件。再其二级目录中有一个和snap软件包一样的目录,如/snap/vlc/。由于之前我也说了,Snap的一个优点就是可以安装不同版本的同一个软件,至于你现在使用的版本的文件其在/snap/vlc/current/中。在meta/snap.yaml中,我可以可以获取到snapcraft的配置文件。

Telegram

Telegram是近年来比较流行的即使聊天软件,也是非常完美的融入了我的生活,至于这个软件怎么使用呢?自己Google吧!!!安装的方法和VLC一样,不过我觉得你都会来安装Telegram,那么Snap你估计也很熟悉了吧!这里直接安装Telegram。

#Telegram Snap App

sudo snap install telegram-sergiusens

Ubuntu 18.04及Snap体验——让Linux入门更简单

Snap安装软件时候,终端会有白色进度条显示下载百分比,非常的人性。

Snap基础教程

其实基础教程应该在实战之前,不过我觉得实战才是最好的学习方法,所以先写了Snap安装软件的方法。相比你现在都已经学会了几个Snap的基本用法了。

#查询已经安装了的软件

sudo snap list

#搜索要安装的Snap软件包

sudo snap find xxxx

#查看Snap软件的更多信息

sudo snap info xxxx

#安装Snap软件包

sudo snap install xxxx

#更换软件安装通道

sudo snap switch –channel=xxxx xxxx

#更新Snap软件包

sudo snap refresh xxxx

#还原到之前版本

sudo snap revert xxxx

#卸载Snap软件

sudo snap remove xxxx

当然光靠命令你想搜索什么snap软件包也是一头雾水吧!可以去uappexplorer里查询下,有什么snap软件包呢!喜欢的就都安装上。

#Uappexplorer

https://uappexplorer.com/snaps

0x06 将软件打包为Snap软件

Ubuntu 18.04及Snap体验——让Linux入门更简单

Snapcraft是用来构建snaps的软件,他使用也非常的简单,我们仅仅需要写一个snapcraft.yaml的配置文件即可。接下来就用Snapcraft打包一下GNU项目里的hello和bash。先从hello开始。

由于Ubuntu 18.04LTS中已经安装有Snapcraft了,我们就不需要在去apt安装了。可以直接开始打包我们的snap软件。

初始打包

1.创建一个打包snap的目录hello。

mkdir hello

cd hello

2.初始化snapcraft。

snapcraft init

3.使用vim编辑配置文件snapcraft.yaml。

vim snap/snapcraft.yaml

将其修改为以下内容。

Ubuntu 18.04及Snap体验——让Linux入门更简单

name:描述这个snap软件的名称

version:描述这个软件的版本,可以用ascii码。

summary:对软件的一个总结。

Description:对软件进行一个描述。

grade:软件的发行通道。

confinement:对软件做一个限制,如devmode或者strict。

之后按照格式定义以下parts。

其中source表示打包软件的来源,plugin表示此软件安装时候需要的一些依赖关系,使用autotools即可。

4.编译snap打包软件。

snapcraft

Ubuntu 18.04及Snap体验——让Linux入门更简单

由于我们的source需要从GNU的ftp服务器上下载程序,待下载好后,其会自动打包编译。

5.之后进行测试安装。

sudo snap install --devmode hello2.10amd64.snap

Ubuntu 18.04及Snap体验——让Linux入门更简单

可以通过snap list查看是否安装成功,注意看Notes部分,其为devmode。

Ubuntu 18.04及Snap体验——让Linux入门更简单

6.进行测试,输入hello命令。

神马??竟然抱错了。当然你肯定会想用which hello进行检查。不过我可以告诉你答案,hello的二进制文件在/snap/bin里,是不是明白哪里出问题了?

Snap全局命令

我们已经知道了为什么hello不能成为全局命令了,当然也还是只能通过修改snapcraft.yaml配置文件来使之成为全局命令。

1.修改snapcraft.yaml,添加一个apps部分,使命令hello指向bin/hello即可。

Ubuntu 18.04及Snap体验——让Linux入门更简单

2.迭代你的snap打包软件。

snapcraft prime

Ubuntu 18.04及Snap体验——让Linux入门更简单

3.之后再次尝试hello命令,终于生效了。

Snap打包进阶

1.为了让我们的snap更有意思一点,我们添加一个新的parts和apps。

Ubuntu 18.04及Snap体验——让Linux入门更简单

2.之后我们重新执行。

Snapcraft prime

毫无疑问你肯定会报错失败。为什么呢??因为gnu-hello和gnu-bash两个不同的parts都将定向到了一个share/info/dir里,这里就发生了冲突。

3.其实在执行snapcraft的时候,类似于执行./configure,这里只用给./configure一个参数即可。那么snapcraft.yaml配置文件可以这么修改。

Ubuntu 18.04及Snap体验——让Linux入门更简单

这相当于将—infodir=/var/bash/info作为一个参数传递给了./configure。

3.之后重新编译。

snapcraft clean gnu-bash -s build

这里的clean只是相当于重新构架了一下gnu-bash,并不需要重新下载gnu-bash,当然可以snapcraft成功了。

Ubuntu 18.04及Snap体验——让Linux入门更简单

4.之后重新测试。

sudo snap try --devmode prime

5.之后再次测试hello和hello.bash命令,看看是否能进入这个子shell。

Ubuntu 18.04及Snap体验——让Linux入门更简单

之后通过env查询当前的环境,确认进入子shell,要退出的话,按q哦!

删除devmode

之前通过snap list可以看出Notes部分标记hello为devmode,既然我们都测试完毕了,那么是时候改为strict了。

Ubuntu 18.04及Snap体验——让Linux入门更简单

1.修改配置文件snapcraft.yaml。

将devmode修改为strict;其实也可以将grade后面的devel修改为stable了。

2.再次snapscraft一下。

3.你可以尝试安装它。

sudo snap install hello2.10amd64.snap

不出意外会报错:error: cannot find signatures with metadata for snap "hello2.10amd64.snap"。

Ubuntu 18.04及Snap体验——让Linux入门更简单

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12694.html