本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为应用程序或插件创建 conda 软件包
您可以将整个应用程序(包括依赖关系)组合成一个 conda 包。Deadline Cloud 在截止日期云频道中为服务管理的车队提供的软件包使用这种二进制重新打包方法。这会组织与安装文件相同的文件,以适合 conda 虚拟环境。
在为 conda 重新打包应用程序时,有两个目标:
-
应用程序的大多数文件应与主要 conda 虚拟环境结构分开。然后,环境可以将应用程序与来自其他来源(例如 conda-
forge)的软件包混合在一起。 -
激活 conda 虚拟环境后,应该可以从 PATH 环境变量中访问该应用程序。
为 conda 重新打包应用程序
-
要为 conda 重新打包应用程序,请编写 conda 构建配方,将应用程序安装到类似的子目录中。
$CONDA_PREFIX/opt/这会将其与标准前缀目录(如<application-name>bin和lib)区分开来。 -
然后,向添加符号链接或启动脚本
$CONDA_PREFIX/bin以运行应用程序二进制文件。或者,创建 activate.d 脚本,该
conda activate命令将运行该脚本以将应用程序的二进制目录添加到 PATH 中。如果在Windows任何可以创建环境的地方都不支持符号链接,请改用应用程序启动或 activate.d 脚本。 -
某些应用程序依赖于 Deadline Cloud 服务管理的队列上默认未安装的库。例如,对于非交互式作业,通常不需要 X11 窗口系统,但有些应用程序仍然要求它在没有图形界面的情况下运行。您必须在创建的包中提供这些依赖关系。
-
确保您遵守所打包的应用程序的版权和许可协议。我们建议使用私有 Amazon S3 存储桶作为您的 conda 频道,以控制分发并限制对服务器场的包访问权限。
截止日期云频道中所有软件包的示例配方可在 DeadlineCloud 示例 GitHub 存储库
为 conda 打包插件
-
应用程序插件可以打包成自己的 conda 包。创建插件包时:
-
将主机应用程序包作为构建依赖项和运行依赖项包含在构建配方中,
meta.yaml以及recipe.yaml。使用版本限制,这样编译配方只能与兼容的软件包一起安装。 -
按照主机应用程序包约定注册插件。
-