通过瑞雷斯·艾奥阿尼
介绍
什么是快照,为什么要使用它们?自’distribution’概念问世以来,Linux生态系统就遭受了一个古老的问题,而这个问题就是碎片化。导致碎片化的最大问题之一是不同的软件包格式。我无法在Fedora系统上运行.debs或在Ubuntu计算机上运行.rpms。是的,我们确实有Alien,它应该允许在两种格式之间进行转换,但是这种方法存在两个问题:除了rpm和deb之外,还有其他软件包格式,此外,Alien并不总是能按预期工作。所以问题仍然在那里,或者我应该说,在那里。输入snap,这是通用的Linux软件包格式,在使用所需的应用程序和库创建新软件包时,它会努力为用户和开发人员提供单一的软件包格式和简便性,以确保所述软件包在发行版之间易于共享。戴尔,三星和Linux基金会被视为贡献者,而Fedora,Ubuntu,Arch或OpenSUSE则受支持。
本文将详细介绍如何以简单用户身份使用快照,以及有关如何为其他人创建快照的开发人员/打包人员的说明。我们将使用的操作系统是Ubuntu 16.04,但是下面的说明不难适应其他发行版。
捕捉为简单用户
这一部分将从用户角度带您快速浏览:如何安装必要的工具以及如何将其用于day-to-day的基本用法。首先,您需要安装snapcraft,一个提供快照的软件包,用于上述day-to-day操作的go-to工具:
$ sudo apt install snapcraft
就这样。现在,在进一步介绍之前,让我们谈谈一些细节:首先,作为快照提供的应用程序是隔离的容器,这在资源消耗和安全性方面有很大帮助。您会发现按扣安装的所有内容/snap/
,它又具有自己的层次结构:/snap/bin
,/snap/lib
等等。其次,您会自动获取更新。第三,将快照视为对现有Linux软件包的补充,而不是替代(无论如何,不是现在)。
最后,快照可以轻松地与已安装的软件集成,可以通过接口使用现有的库。正如我们过去所说,该手册无可替代。因此,尽管我们将带您游览,但如果您想更深入地学习,则需要自己做一些阅读。因此,让我们从基本的快照操作开始:如果要搜索软件包,请执行
$ snap find hello
在这里,’hello’是我们正在寻找的示例字符串。使用相同的字符串,让我们安装一些东西:
$ sudo snap install hello
您可以使用’list’查看已安装的快照:
$ snap list
更新更新,或者安装所有内容,或者仅更新某些快照:
$ sudo snap refresh
OR
$ sudo snap refresh hello
‘revert’命令是什么新东西(是的,例如,您可以使用yum还原,但不仅如此,而且并非总是如此):
$ sudo snap revert hello
使用snap作为开发人员
设定
首先,让我们来看一下创建快照所需的入门。交易的工具称为snapd,在Ubuntu和Debian上它非常简单
$ sudo apt install snapd snapcraft
在Fedora上,您可以做
$ sudo dnf copr enable zyga/snapcore
$ sudo dnf install snapd
$ sudo systemctl enable --now snapd.service
$ sudo setenforce 0
$ sudo $editor /etc/selinux/config #set SELINUX=permissive and reboot to make SELINUX settings permanent
就是这样。但是,有一个陷阱。尽管这些工具可与大多数主要的Linux发行版一起使用,但我们将安装并使用snapcraft,据我们所知,该工具可从Ubuntu存储库和AUR中获得,以便我们学习如何创建快照。其余的Linux用户只需克隆git存储库(https://github.com/snapcore/snapcraft)并进行构建即可。
游览并创建快照
在继续之前,请注意您的快照(或现有快照)将比相应的存储库软件包大得多。为什么?因为它们还包含程序运行所需的所有依赖关系,所以在某种程度上,它们是self-sustaining。安装好snapcraft之后,建议您进行以下游览:
$ snapcraft tour
此命令将初始化一些目录和子目录(默认情况下为./snapcraft-tour
),您将获得源代码示例,说明和带编号的步骤,这些步骤将指导您完成基础操作。例如,第一步是,您好,世界呢?类型
$ cd snapcraft-tour/00-SNAPCRAFT/01-easy-start
并且您只会在其中看到.yaml文件,该文件基本上是描述快照的文件。看看它,您会看到它定义了名称,要获取的内容,从何处获取的内容,将生成什么应用程序,等等。然后,运行
$ snapcraft
在上面的目录中,它将执行所需的所有操作,并为您提供快速的帮助。只要您仍在上述目录中,就可以安装所述快照。
$ sudo snap install ./hello*.snap
花一些时间来播放.yaml文件-为此制作一个副本始终是一个好主意-看看如果在那里更改一些变量会发生什么,并发现所做的更改如何影响快照的创建。请记住,您始终可以将快照分发给您的朋友或为其创建存储库。最后一点:.yaml中的’source’部分具有URL作为值,但是您也可以具有本地值,例如./src/my_dep/
。
最后的话
请注意,我们几乎只是用卡扣刮了一下表面,但是要学习和使用卡扣可以做的很多事情都很棒!例如,仅将软件打包为RPM并在Debian上需要时让用户头痛的永无休止的问题似乎已经结束。与往常一样,我们鼓励您使用快照,创建一些快照,不要忘记共享!玩得开心!