AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 686167
Accepted
David Planella
David Planella
Asked: 2015-10-17 01:06:54 +0800 CST2015-10-17 01:06:54 +0800 CST 2015-10-17 01:06:54 +0800 CST

什么是 Snapcraft?

  • 772

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

什么是 Snapcraft,我该如何使用它?

raspberrypi
  • 1 1 个回答
  • 6326 Views

1 个回答

  • Voted
  1. Best Answer
    David Planella
    2015-10-17T01:06:54+08:002015-10-17T01:06:54+08:00

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

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

    快照工艺:

    • 智能:它从远程源获取、构建和组装不同的软件(部分)到最终的 .snap 包中,其中包含它运行所需的所有依赖项
    • 需要一个配方:它依赖于snapcraft.yaml指定创建包所需的部件和插件的文件
    • 可以使用插件扩展。虽然它附带了一组最常见的构建系统插件来满足广泛的应用程序构建需求,但它可以很容易地用新插件进行扩展。

    3 分钟的 Snapcraft 之旅

    在 Ubuntu 上安装 Snapcraft

    您需要 Ubuntu 16.04 LTS 才能使用 Snapcraft。Ctrl使用+ 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. Pull:它从远程 Github 存储库中提取所需的 gopaste 部分的代码
    2. 构建:它在本地构建 gopaste
    3. 阶段:构建后,部件被放入单个目录树中,即“暂存区”
    4. Snap:最终的 .snap 包是从暂存区中的组装部件创建的

    笔记:

    • 您会发现最终的 snap 文件为gopaste_1.0_amd64.snap(请注意,在我的例子中,我是在我的 amd64 桌面上构建它的,例如 Raspberry Pi 2 包将具有_armhf架构后缀)。
    • 您还可以单独运行每个命令:snapcraft pull、、snapcraft build或snapcraft stagesnapcraft snap
    • 用于snapcraft -h快速概览所有可用命令。

    这就是快速浏览 Snapcraft 可以做什么!了解有关 Snapcraft 的更多信息 >

    • 27

相关问题

  • 如何从树莓派 2 (snappy) 连接 wifi 网络

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve