什么是 Snapcraft?

什么是 Snapcraft?

我一直在 Raspberry Pi 2 设备上尝试使用 snappy Ubuntu core,我听说我可以使用 Snapcraft 进行开发。现在我听说 Ubuntu 16.04 和其他发行版的桌面和服务器上都有 snap 可用。

什么是 Snapcraft 以及如何使用它?

答案1

Snapcraft 是一个工具集捆绑在snapcraft命令下,轻松为多个 Linux 发行版创建(制作)软件包。这些 .snap 包通常包含独立的应用程序,提供安全隔离,可以从 Ubuntu 软件商店安装,也可以通过命令手动安装snap install <snap-name>.snap

简而言之,作为开发人员,您可以使用常规工具编写代码,然后让 Snapcraft 负责组装代码以供分发。Snapcraft 还擅长帮助开发人员港口他们现有的应用程序可以迁移到任何支持 snap 功能的 Linux 平台。

Snapcraft:

  • 很聪明:它获取、构建和组装各种软件(部分)从远程源复制到最终的 .snap 包中,其中包含运行所需的所有依赖项
  • 需要食谱:它依赖于snapcraft.yaml指定部分插件创建包所需的
  • 可扩展带有插件。虽然它附带了一组最常见的构建系统插件,可以满足各种应用程序构建的需求,但它可以轻松扩展新功能

3 分钟 Snapcraft 之旅

在 Ubuntu 上安装 Snapcraft

Ctrl您需要 Ubuntu 16.04 LTS 才能使用 Snapcraft。使用+ Alt+打开终端t,然后使用以下命令安装 Snapcraft:

sudo apt install snapcraft
sudo apt install build-essential  # Optional, but useful for different builds

如果你正在使用其他发行版,查看替代安装说明 >

试用 Snapcraft

以下示例制作了一个包含允许您粘贴和共享的服务的包。完成后,您可以手动将其安装在您的 snappy 设备上进行测试,也可以将其上传到商店供其他用户使用。

首先,我们打开一个终端并从示例存储库下载示例:

sudo apt install git
git clone https://github.com/ubuntu-core/snapcraft.git
cd snapcraft/demos/gopaste

请注意snapcraft.yaml该目录中的文件,它指定了一项服务和组装最终 .snap 所需的部分。您可以选择使用文本编辑器检查它。

现在snapcraft在终端上运行该命令。这将导致所有 snapcraft 子命令按顺序运行以构建各个部分并将结果放入最终的 .snap 包中。在开发过程中,您通常会单独运行这些步骤,直到您确信整个构建和组装工作正常。

$ snapcraft 
Pulling gopaste 
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go get -t -d github.com/wisnij/gopaste/gopasted
Building gopaste 
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go build github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go install github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build cp -a /tmp/snapcraft/examples/gopaste/parts/gopaste/build/bin /tmp/snapcraft/examples/gopaste/parts/gopaste/install
Staging gopaste 
Snapping gopaste 
Generated 'gopaste_1.0_amd64.snap' snap

在命令的输出中您可以看到 snapcraft 为您运行的步骤:

  1. :它从远程 Github 仓库中提取所需的 gopaste 部分的代码
  2. 建造:它在本地构建 gopaste
  3. 阶段:构建完成后,各个部分将被放入单个目录树,即“暂存区”
  4. 折断:最终的 .snap 包由暂存区中组装好的部件创建

笔记:

  • 您将找到最终的 snap 文件gopaste_1.0_amd64.snap(请注意,在我的情况下,我是在我的 amd64 桌面上构建它的,例如 Raspberry Pi 2 包会有_armhf架构后缀)。
  • 您还可以单独运行每个命令:snapcraft pullsnapcraft buildsnapcraft stagesnapcraft snap
  • 用于snapcraft -h快速概览所有可用的命令。

这就是我们对 Snapcraft 功能的快速了解!了解有关 Snapcraft 的更多信息 >

相关内容