在气隙机器上克隆 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
解决了这个问题
我在普通机器上搭建了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