我正在尝试从CRAN打包一些R包以在conda环境中使用,因为我正在使用Python和R包的组合来生成信息管道。由于其他依赖性,我需要将R保持在版本3.3
我用Python和R的版本创建了一个全新的环境:
$ conda create -n bioinfo python = 3.6.3 r = 3.3.2
根环境中没有安装R.然后我按照conda骨架的说明进行操作:
(bioinfo)$ conda skeleton cran rootSolve
(bioinfo)$ conda skeleton cran rootSolve
(bioinfo)$ conda build r-rootolve
出于某种原因,这持续产生R3.4依赖,即使根据CRAN,rootSolve包只需要R> = 2.01!这是从哪里来的?
将安装以下新软件包: r-base:3.4.2-haf99962_0
虽然构建程序包实际上并没有改变我环境中运行的R版本,但是程序包不会加载。有什么想法吗?
R版本3.3.2(2016-10-31) - "真诚的南瓜补丁"
> library('rootSolve')
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/usr/people/bioc1402/miniconda3/envs/bioinfo2/lib/R/library/rootSolve/libs/rootSolve.so':
/usr/people/bioc1402/miniconda3/envs/bioinfo2/lib/R/library/rootSolve/libs/rootSolve.so: undefined symbol: R_ExternalPtrAddrFn
In addition: Warning message:
package ‘rootSolve’ was built under R version 3.4.2
Error: package or namespace load failed for ‘rootSolve’
答案 0 :(得分:0)
显然这是一个bug,现在修复了conda-build 3.1.3, https://github.com/conda/conda-build/issues/2562
感谢conda团队!
'conda build r-rootolve --R = 3.3.1'现在适用于conda骨架生成的配方。