如何使“apps:”可以输出快照“部分:”?

时间:2017-04-18 21:45:10

标签: yaml snapcraft

apps:
  library-sample:
    command: library_sample

parts:
  library:
    source: https://github.com/the/sample.git
    plugin: cmake

当snapcraft运行cmake安装时,“库”将安装在系统上(正如我所料)。此外,cmake还将在samples目录下的build文件夹中生成测试应用程序。

我想将示例(由“部分”生成)提升为快照包中已安装的应用。

如何使用snap YAML从build文件夹下的嵌套目录移动到快照/bin文件夹?

1 个答案:

答案 0 :(得分:1)

你可以利用Snapcraft的scriptlets来做到这一点。具体来说,是install scriptlet。它们实质上允许您通过自定义构建过程的各个部分来修改构建过程的行为。在build生命周期步骤中,snapcraft最终运行cmake && make && make install,但make install并未执行您希望它执行的所有操作。 install scriptlet在make install之后运行,因此您可以执行以下操作:

parts:
  library:
    source: https://github.com/the/sample.git
    plugin: cmake
    install: |
      cp -r path/to/samples $SNAPCRAFT_PART_INSTALL/

现在使用snapcraft clean -s build清除构建步骤并再次运行snapcraft。然后,samples目录将以最终的快照结束。