添加预链接、后链接和预解除链接脚本#

您可以向食谱添加脚本。它们必须位于与 meta.yaml 文件相同的目录中。以下脚本可以添加:

  • pre-link---在安装包之前执行。非零退出表示错误,会导致 conda 停止并导致安装失败。

  • post-link---在安装包之后执行。非零退出表示错误,会导致安装失败。如果出现错误,conda 不会写入任何包元数据。

  • pre-unlink---在移除包之前执行。非零退出表示错误,会导致移除失败。

除了与 meta.yaml 文件位于同一目录之外,它们还必须命名为 post-link.shpost-link.bat。Conda-build 会将它们重命名为 .<name>-<action>.sh(或 .bat),其中 <name> 是包名,<action> 是前面提到的操作之一。

这些脚本在 conda 的子进程中执行,在 Windows 上使用 %COMSPEC% /c <script>,在 macOS 和 Linux 上使用 /bin/bash <script>

在 Windows 上,这些脚本的路径和文件名的约定为

Scripts/.<name>-<action>.bat

在 Linux 和 macOS 上,约定为

bin/.<name>-<action>.sh

这些脚本设置以下环境变量:

PREFIX

安装前缀。

PKG_NAME

包的名称。

PKG_VERSION

包的版本。

PKG_BUILDNUM

包的构建号。

这些脚本是

  • Windows

    • pre-link.bat

    • post-link.bat

    • pre-unlink.bat

  • macOS 和 Linux

    • pre-link.sh

    • post-link.sh

    • pre-unlink.sh

后链接和预解除链接脚本应该

  • 尽可能避免。

  • 不要触碰除正在安装的文件以外的任何其他内容。

  • 不要向标准输出或标准错误写入任何内容,除非出现错误。

  • 不要依赖任何已安装或将要安装的 conda 包。

  • 仅依赖简单的系统工具,例如 rmcpmvln

这些脚本不应向标准输出或标准错误写入内容,除非出现错误,但它们可以写入 $PREFIX/.messages.txt,该文件将在 conda 完成所有操作后显示。