如何将 CRAN 包导出到 Conda yaml 文件?
How to export CRAN packages to Conda yaml file?
我需要导出包含多个包的 Conda R 环境。除了一个之外的所有内容都可以通过 Conda 频道获得,因此可以轻松添加。问题是包 BiDAG,它在 CRAN 上,但在 Conda 频道中 none。
当我 运行 install.packages("BiDAG")
从我想要导出的环境内部时,包被安装到正确的目录中。但是,conda env export > env.yml
无法识别它,因为它只跟踪由 conda 本身安装的包。
我试过使用
从 CRAN 构建
conda skeleton CRAN bidag
conda build r-bidag
但这会在 Bioconductor 提供的两个包(r-graph 和 r-rgraphviz)上崩溃,甚至通过 conda 渠道,但不再在 CRAN 上。因此无法识别它们并且构建失败。
有没有办法在 .yml 中使用这个 CRAN 包 BiDAG 导出 conda 环境?
供以后参考:这似乎是不可能的。更好的解决方案是使用像 Docker 或 Singularity 这样的容器系统,这就是我要做的。
在 Conda 环境中避免 install.packages
通常,在 Conda 管理的 R 环境中使用 install.packages
会使环境复杂化,我建议不要这样做。正如您所发现的,Conda 无法识别这些包,因此失去了 Conda 通过环境导出提供的可重现性。此外,install.packages
经常无法找到用于所有 Conda 包构建的共享库和构建堆栈。这可能会导致某些包出现编译、链接或其他共享库问题。
建筑r-bidag
Bioconductor 包都托管在 bioconda
频道上,并以 bioconductor-
为前缀,而不是 r-
。因此,应该能够通过修改来自 conda skeleton
的 meta.yaml
将 r-graph
和 r-graphviz
替换为 bioconductor-graph
和 [=23] 来构建软件包=].然后用
构建包
conda build --override-channels -c conda-forge -c bioconda -c defaults r-bidag
您可能还需要 --R
参数来指定要构建的 R 版本。
我需要导出包含多个包的 Conda R 环境。除了一个之外的所有内容都可以通过 Conda 频道获得,因此可以轻松添加。问题是包 BiDAG,它在 CRAN 上,但在 Conda 频道中 none。
当我 运行 install.packages("BiDAG")
从我想要导出的环境内部时,包被安装到正确的目录中。但是,conda env export > env.yml
无法识别它,因为它只跟踪由 conda 本身安装的包。
我试过使用
从 CRAN 构建conda skeleton CRAN bidag
conda build r-bidag
但这会在 Bioconductor 提供的两个包(r-graph 和 r-rgraphviz)上崩溃,甚至通过 conda 渠道,但不再在 CRAN 上。因此无法识别它们并且构建失败。
有没有办法在 .yml 中使用这个 CRAN 包 BiDAG 导出 conda 环境?
供以后参考:这似乎是不可能的。更好的解决方案是使用像 Docker 或 Singularity 这样的容器系统,这就是我要做的。
在 Conda 环境中避免 install.packages
通常,在 Conda 管理的 R 环境中使用 install.packages
会使环境复杂化,我建议不要这样做。正如您所发现的,Conda 无法识别这些包,因此失去了 Conda 通过环境导出提供的可重现性。此外,install.packages
经常无法找到用于所有 Conda 包构建的共享库和构建堆栈。这可能会导致某些包出现编译、链接或其他共享库问题。
建筑r-bidag
Bioconductor 包都托管在 bioconda
频道上,并以 bioconductor-
为前缀,而不是 r-
。因此,应该能够通过修改来自 conda skeleton
的 meta.yaml
将 r-graph
和 r-graphviz
替换为 bioconductor-graph
和 [=23] 来构建软件包=].然后用
conda build --override-channels -c conda-forge -c bioconda -c defaults r-bidag
您可能还需要 --R
参数来指定要构建的 R 版本。