当前位置: 首页>>技术教程>>正文


捕捉通用Linux软件包格式的初学者介绍

, ,
2016年8月22日
通过瑞雷斯·艾奥阿尼

介绍

什么是快照,为什么要使用它们?自’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上需要时让用户头痛的永无休止的问题似乎已经结束。与往常一样,我们鼓励您使用快照,创建一些快照,不要忘记共享!玩得开心!

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9872.html,未经允许,请勿转载。