有安装R包的终极方法吗?

说到R包的安装简直是个噩梦,为什么R包这么难装呢?我大胆分析一下,欢迎批评指正

  1. 生态混乱

    R在统计圈的盛行决定了R包的开发人员基本上做统计的,这些开发者开发的包水平层次不齐。有时候一个简单的功能却要依赖一个非常复杂的包,严重增加的包的负担。

  2. 很多包含有C代码需要编译

    一方面需要安装编译器,另一方面有编译失败的风险。

  3. 错误提示不友好

    例如,biomaRt安装说明说,可以使用R 3.6安装:

    然而,错误提示却是:

    安装失败的原因当然不是R版本的问题,这里却误导性的提示是R版本的问题。如果这个时候能给出安装失败的真正原因,也能帮助用户快速定位问题。然而,事与愿违。

总结一下,R包难以安装的根本原因是生态混乱错误提示不友好是阻碍用户找到失败原因的根本原因。

解决办法

我们总希望解决问题的时候有什么终极办法,然而对于R包的安装却是很难找到此类办法。下面我列举一下我平时解决问题的基本思路,不能保证彻底解决问题,但是大多数的问题是能够解决的。

使用anaconda安装

这个方法最有希望成为终极解决办法。anaconda组织会把R包统一管理,你只需要使用conda install就行。
例如,你想要安装ArrayExpress,执行如下命令安装:

conda install -c bioconda bioconductor-arrayexpress

然而,事情不是总是那么顺利,也是很容易安装失败。

失败原因1:版本冲突

anaconda有三个重要的channel与R相关。

  1. r

  2. conda-forge

  3. bioconda

其中bioconda里面都是bioconductor包,这个里面的包依赖rconda-forge里面的一些R包,这就很容易导致安装包时各个channel里面的包互相冲突。

失败原因2: conda install一下,地动山摇

不知道biconda的打包策略,有的时候安装一个R包却要更新我的Python。往往安装的时候我都心惊胆战,生怕有啥不好的影响。一见到有更新PythonR包,往往只能采取其他方式安装。

下载二进制包安装

这个方法针对有些R包有C代码需要编译安装,却又不想安装编译器,或者没有编译成功的情况。方法是去CRAN官网,找到你要安装的包,选择你要安装平台的二进制包下载:

然后本地安装:

install.packages('/path/to/download/file.zip', repos = NULL)

这里要注意,如果是本地安装需要指定repos = NULL。为啥要单独指定,R不会判断是本地文件路径还是包名吗?这个问题我也很疑惑。

源码安装

这个安装方法是没有办法的办法。设想我就是这个包的开发者,我会怎么开发这个包呢?

  1. 写代码

  2. 装依赖

  3. ...

那么我下载这个包的源码,把这个包的依赖依次装上,然后再装这个包不是水到渠成吗?

这个方法最为麻烦,然而却是能解决大部分的情况。大体步骤是这样的:

  1. 下载源码
  2. 解压,进入项目根目录

  3. 像这个包的开发者一样,使用devtools::install()进行安装

  4. 如果安装失败,打开DESCRIPTION文件

  5. 依次安装项目依赖,DESCRIPTION文件DependsImports两项是项目依赖,例如:

    这个包依赖BiobaseXMLoligolimma

  6. 如果依赖包依旧安装错误,则下载依赖包的源码进行源码安装(这是一个递归),直到所有依赖安装成功,这个时候再运行devtools::install()就水到渠成了。

2021年,遇见更好的自己
(0)

相关推荐

  • python中“SimpleITK”模块完美快速安装_Expected future的博客-CSDN博客

    Expected future 2020-11-14 15:05:42 23 收藏 分类专栏: 环境搭建集锦 python学习 版权 写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同 ...

  • NGS数据分析实践:01. Conda环境配置及软件安装

    NGS数据分析实践:01. Conda环境配置及软件安装

  • conda与bioconda解决生信软件安装困扰

    简介 conda原本是为了解决Python模块安装的依赖问题,然而可能是无心栽柳柳成荫,conda目前已经超越了其最初目的而存在,可以解决大多数软件的安装和配置,包括各种本身与python毫无关系的包 ...

  • 测试conda镜像问题

    最近(2019-05-08 )很多人反映conda镜像挂掉的问题,所以我有必要给粉丝测试一下: wget https://repo.anaconda.com/miniconda/Miniconda3- ...

  • conda管理软件遇到的莫名其妙的的库文件缺少

    初学者会大量依赖于conda傻瓜式管理软件,在这里首先强推<生信技能树>团队的卖萌哥在2021新年伊始的公开课: https://www.bilibili.com/video/BV1Yy4 ...

  • conda之packages管理

    conda的核心功能包括environments和packages的管理,在之前的文章中介绍了environments的管理技巧,本文来看下packages的管理方式. 根据常用的操作,可以分为以下5 ...

  • 终极奥义! 生信软件安装神器~ conda 从入门到精通

    前言 生物信息学分析常常需要用到许多不同的软件,常见安装方式有三种: 源码安装,要求安装者对包有较充分的认识,适用于开发者或深入学习和挑战者: 预编译版本安装,一般安装者将其拷贝到目录下即可运行: 第 ...

  • conda国内源

    清华源.中科大源大部分时间能用,但没事也会被封.最近发现的北外源挺好用.推荐使用: 北外镜像(推荐): conda config --add channels https://mirrors.bfsu ...

  • 批量安装R包小技巧大放送

    我们周末班准备工作给的安装R包 http://www.bio-info-trainee.com/3727.html 是一个个R包慢慢安装,主要是考虑到初学者不理解循环这样的编程概念,但实际上要批量安装 ...

  • 不知道为什么MAC安装R包时候总是出现gfortran错误

    前面其实我提到过一次:明明解决了gfortran问题但是仍然安装WGCNA失败,也是同样的报错,这次又出现了,但是我又是以另外一种方式解决了!很神奇 最近使用The Chip Analysis Met ...

  • BiocManager无法安装R包

    每次开展R语言线下学习班,都需要重新发几次:Windows电脑使用Rstudio会有多少错误呢 ,虽然大部分同学都是可以根据我们的教程顺利解决问题,但是不幸的人各有各的不幸.一般来说就是Windows ...

  • 听说你安装Python包很慢,试试这个方法

    使用Python有快五年了,最近这一年多,经常听到大家说在安装python第三方包很慢很慢. 比如这速度,每秒十几kb 而网络正常的情况下,pip下载的速度至少应该每秒几百kb才对,甚至还有可能更快, ...

  • R包终极解决方案

    写在前面: 在如何通过Google来使用ggplot2可视化这篇文章中,我们曾经介绍过R语言在生物信息学中的重要性. 这篇文章也激发了很多小伙伴学习的热情.学习R语言必然会安装各种各样的包,很多人在这 ...

  • R包安装大全-番外篇一

    SingleCellExperiment是单细胞转录组数据的基础包,大部分其它单细胞转录组数据处理的包都依赖于它,就跟芯片数据里面的ExpressionSet对象一样,需要拼了命的理解透,才有可能做好 ...

  • 史上最贴心R包安装示范视频

    知识诅咒想必大家都不陌生,如果读者还不清楚,我摘抄一段: 知识诅咒 1990年,伊丽莎白·牛顿在斯坦福大学通过研究一个简单的游戏获得了心理学博士学位.在这个游戏中,她把参与者分为两种角色:" ...

  • 在Ubuntu下安装单细胞3大R包

    查看Ubuntu系统以及R版本 cat /etc/issue 通常来说,很多R包的安装对R版本是有要求的,比如BiocManager需要 R (≥ 3.5.0),但是并不需要最新版R语言. R到3.5 ...

  • 安装GitHub的R包困难解决方案

    相信遇到这样的问题的朋友不在少数,在中国大陆做数据分析,下载软件数据文件遇到困难那是家常便饭. 比如安装GitHub的R包,因为并不是所有的R包都会被正式的发布在CRAN或者bioconductor, ...