用conda安装R包

前几天自己在Windows电脑上装了一个单细胞注释包-SingleR,尽管依赖包很多,安装时间很长,但最终还是成功安装上了。

但今天在服务器个人用户上尝试多次均失败:中间有一个依赖包叫HDF5Array,问题就出在它身上,我能看到安装包tar.gz临时文件被成功下载,但后面的过程总是报错,如下:

error: package or namespace load failed for 'hdf5array' #1
call: h5fcreate(file)   
error: hdf5. file accessibilty. unable to open file. 
Error: loading failed 
Execution halted
removing xxx
installation of package 'HDF5Array' had non-zero exit status #2经查询,这是一个很泛的提示,没有什么作用

我是如何安装的:我先用conda创建了一个环境,再在这个环境中用conda安装了R,并进入R中用BiocManager::install来安装这个R包。

我根据部分报错信息(#1,#2)检索出了一些帖子,有说在下载安装R的时候还需要下载gcc这类文件,有说要安装低版本的R包等等,都试过了还是不可以。问题复杂的时候就是这样,网上的帖子很难适用于自己的情况。我也在Bioconductor下载了不同版本的安装包,用install.packages()本地安装,没有起作用。

最后试了一下conda命令安装R包,和安装其他软件命令相同。但是安装之后位置很特殊:

conda install bioconductor-hdf5array=1.14.0 #因为我事先搜索了,知道对应我的R版本(3.6)的hdf5array最高版本是1.14.0

安装位置在~/miniconda3/pkgs: 
bioconductor-biocgenerics-0.32.0-r36_0
bioconductor-biocparallel-1.20.0-r36he1b5a44_0
bioconductor-delayedarray-0.12.0-r36h516909a_0
bioconductor-hdf5array-1.14.0-r36h516909a_0
bioconductor-iranges-2.20.0-r36h516909a_0
bioconductor-rhdf5-2.30.0-r36he1b5a44_0
bioconductor-rhdf5lib-1.8.0-r36h516909a_0
bioconductor-s4vectors-0.24.0-r36h516909a_0
之所以有这么多是因为下载了hdf5array的依赖包

~/miniconda3/pkgs/bioconductor-hdf5array-1.14.0-r36h516909a_0/lib/R/library/HDF5Array
这就是我们需要的包,现在的名称是HDF5Array

但这样下载之后,是不能在R里面调用的,需要转一下位置。首先需要知道正常情况下,在R里面安装包是存放在哪里:

~/miniconda3/envs/singler/lib/R/library

把刚才的包(文件夹对应HDF5Array)复制进来,
后面的安装就比较顺利了,进入R,

BiocManager::install("SingleR")

总结一下重点:

  • 可以使用conda创建特定的环境,以及安装非root用户也可以拥有所有权限的R
  • R里面安装不成功,可以试试conda命令安装R包,但需要注意路径问题,即你需要知道两种方法R包都装到哪儿去了,并复制到目标文件夹下面

你可能感兴趣的:(用conda安装R包)