如何使快照 "parts:" 的输出可用于 "apps:"?
How to make the output of a snap "parts:" available to "apps:"?
apps:
library-sample:
command: library_sample
parts:
library:
source: https://github.com/the/sample.git
plugin: cmake
当 snapcraft 运行 cmake
安装时,"library" 将安装在系统上(如我所料)。此外,cmake
还将在 build
目录下的 samples
文件夹中生成一个测试应用程序。
我想将示例(由 "part" 生成)升级为安装在 snap 包中的应用程序。
如何使用 snap YAML 从 build
文件夹下的嵌套目录移动到 snap /bin
文件夹?
您可以利用 Snapcraft 的 scriptlets 来做到这一点。具体来说,install
小脚本。它们本质上允许您通过自定义部分来修改构建过程的行为。在 build
生命周期步骤中,snapcraft 本质上是 运行s cmake && make && make install
,但 make install
并没有做你想让它做的一切。 install
小脚本 运行 紧跟在 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 目录将在最后的 snap 中结束。
apps:
library-sample:
command: library_sample
parts:
library:
source: https://github.com/the/sample.git
plugin: cmake
当 snapcraft 运行 cmake
安装时,"library" 将安装在系统上(如我所料)。此外,cmake
还将在 build
目录下的 samples
文件夹中生成一个测试应用程序。
我想将示例(由 "part" 生成)升级为安装在 snap 包中的应用程序。
如何使用 snap YAML 从 build
文件夹下的嵌套目录移动到 snap /bin
文件夹?
您可以利用 Snapcraft 的 scriptlets 来做到这一点。具体来说,install
小脚本。它们本质上允许您通过自定义部分来修改构建过程的行为。在 build
生命周期步骤中,snapcraft 本质上是 运行s cmake && make && make install
,但 make install
并没有做你想让它做的一切。 install
小脚本 运行 紧跟在 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 目录将在最后的 snap 中结束。