在气隙机器上克隆 Conda 环境

Clone Conda environment on an airgapped machine

我在普通机器上搭建了Conda环境。它工作正常。我想在一台无法上网的机器上克隆这个环境(我只能SSH进去)。

我最初的想法是压缩 Conda 留下的包缓存并将其移动到气隙机器上的适当位置:

conda create --offline --use-local -n my_env pkg1 pkg2 pkg3 etc

这行不通。它抱怨说包或其依赖项在我移至这台机器上的集合之间存在不兼容性。添加 --force and/or --no-deps 没有区别。

我想做的是:

conda env create --offline --use-local -f EXPORTED_ENV.yaml -n my_env

...其中 EXPORTED_ENV.yaml 是在常规机器上创建的,因为 - 至少传闻 - 我认为 Conda 只是使用它在这种情况下给出的内容,而不是试图解析依赖关系图.但是,env create 没有 --offline--use-local--no-deps 标志;如果没有,它坚持尝试(并且失败)在气隙机器上下载包,即使它们位于包缓存中也是如此。

有没有办法强制 conda create 忽略冲突或使 conda env create 从本地缓存安装?

(n.b., 类似,但它似乎专门与 pip 安装的软件包有关,因此接受的答案侧重于此作为替代方案。我的环境,但是,主要是非 pip 基础。)

我用 conda pack

解决了这个问题