为啥我安装R包总出现‘...had non-zero exit status.‘??

事情的起因是这样的,我想在R Studio中安装github中的包,执行了以下代码:

install.packages("devtools", dependencies = TRUE, type = "binary")
library(devtools)
install_github('yuabrahamliu/eClock')

然后就报下方错误:

installation of package
‘C:/Users/Admin/AppData/Local/Temp/RtmpMJDqM2/file93420cd3b9d/eClock_1.0.0.tar.gz’
had non-zero exit status

之前也遇到过类似错误’…had non-zero exit status’,解决办法参考了https://zhuanlan.zhihu.com/p/438451509,对于CRAN包真的有解决,但这个有些不大一样,也就是加上 type=“binary” 也还是报错。

于是我开始了解决之路,首先尝试了不同的R语言安装github包的方法,参考https://blog.csdn.net/tandelin/article/details/103634548,然鹅,三种方法(1,2,4)都尝试了还是不行!

我继续针对之前的报错信息进行解决,有一条错误是这么提示的:

ERROR: dependencies ‘AnnotationDbi’,
‘IlluminaHumanMethylation450kanno.ilmn12.hg19’, ‘bumphunter’,
‘org.Hs.eg.db’, ‘TxDb.Hsapiens.UCSC.hg19.knownGene’,
‘GenomicFeatures’, ‘GenomicRanges’, ‘IRanges’ are not available for
package ‘eClock’
* removing ‘G:/Program Files/R/R-4.2.1/library/eClock’

我先是尝试安装缺失的依赖包,发现安装不了,报错信息如下:

> install.packages("AnnotationDbi", dependencies = TRUE, type = "binary")
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
Warning in install.packages :
  package ‘AnnotationDbi’ is not available as a binary package for this version of R

A version of this package for your version of R might be available elsewhere,
see the ideas at
https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages

> install.packages("AnnotationDbi", dependencies = TRUE)
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:

https://cran.rstudio.com/bin/windows/Rtools/
Warning in install.packages :
  package ‘AnnotationDbi’ is not available for this version of R

A version of this package for your version of R might be available elsewhere,
see the ideas at
https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages

根据提示信息‘package ‘AnnotationDbi’ is not available as a binary package for this version of R’,我想是不是R版本的问题,于是,我换用了不同的R版本,前前后后,安装了五个!R-3.6.3, R-4.2.1, R-4.0.2, R-4.1.0, R-4.1.3,这个问题仍没解决。

最开始使用的是R-3.6.3,错误提示’eClock 要求R版本>=4.0.2’;
于是我下载安装了R-4.2.1, 报的错误就是上方的依赖包 are not available错误;
以为是版本问题,又下载安装了R-4.0.2,报错提示‘devtools是用R版本4.0.5来建造的’;
又下载安装了R-4.1.0,报错提示‘devtools是用R版本4.1.3来建造的’;
我忽然理解了之前提示的R-4.0.5,于是又下载安装了R-4.1.3,
但是,仍然报了和之前同样的错误,即:

ERROR: dependencies ‘AnnotationDbi’,
‘IlluminaHumanMethylation450kanno.ilmn12.hg19’, ‘bumphunter’,
‘org.Hs.eg.db’, ‘TxDb.Hsapiens.UCSC.hg19.knownGene’,
‘GenomicFeatures’, ‘GenomicRanges’, ‘IRanges’ are not available for
package ‘eClock’
* removing 'G:/Program Files/R/R-4.1.3/library/eClock

又仔细看了install.packages(“AnnotationDbi”, dependencies = TRUE)的报错信息,里面有提到Rtools,于是去https://cran.rstudio.com/bin/windows/Rtools/下载安装了rtools40-x86_64.exe,再次安装‘AnnotationDbi’仍然报同样错误,并且程序似乎没有找到Rtools,仍然显示:

WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:>
https://cran.rstudio.com/bin/windows/Rtools/

猜测可能是没有重启Rstudio,之后重启试试,再就是根据提示信息来这看看https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages

重启之后,再安装‘AnnotationDbi’果然没有报Rtools的错误了,但仍然提示:

Warning in install.packages :
package ‘AnnotationDbi’ is not available for this version of R
A version of this package for your version of R might be available elsewhere,
see the ideas at
https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages

看来接下来只能在上面提示的网址中找找解决办法了。

通过阅读,了解到了Install Packages的相关内容,部分如下:

  • packages的提供方式可能有两种,一种是source package,一种是binary package,前者在安装时需要提前安装编译器及相关工具,而后者则不需要,直接安装就好。这也就解释了为什么我在安装有些package时,直接install.packages(“pkg”)不行,但说明type='binary’之后就可以安装成功了。
  • 当package在不止一个library中含有时,安装时需要制定安装的是哪个library里的package,如果不指定则默认安装检索到的第一个library里的内容。
  • 确保环境变量里的TMPDIR未进行设置,/tmp路径是存在的,且有写入和执行的权限,或者TMPDIR是有效的绝对路径,不包含空格。
  • 对于CRAN包和联网可获得的包,大部分情况下使用install.packages(“pkgname”)就可以安装了,或者相应的GUI也行。
  • 如果需要安装多个包,使用install.packsges(c(‘pkg1’, ‘pkg2’, …))。
  • 如果想获取一个软件包及它的相关依赖,使用dependencies=TRUE即可。
  • 通过将参数repo设置为NULL,可以从本地.tar.gz文档或url中安装源包。
  • 可以查看一些存储库,包括CRAN mirror, Bioconductor, R-forge, rforge.net, local archives, local files, … 使用函数setRepositories()进行选择。
  • 当install.packages报告找不到一些包时,可能的原因有:
    1. 这个包是R本身的一部分,且其他地方不可用;
    1. 软件包不在可用的存储库中;
    1. 这个包是可获取的,但是不适用于当前的R版本或系统,使用av <- available.packages(filters=list())
      av[av[, “Package”] == pkg, ] 检索有关软件包 pkg 的可用版本的信息;
  • 不要忘记,安装了软件包之后需要使用library导入后,才能正常使用该功能。

搜索发现,AnnotationDbi在Bioconductor库中,https://bioconductor.org/packages/release/bioc/html/AnnotationDbi.html,使用如下安装方法,即可安装成功。

if (!require("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("AnnotationDbi")

由于之前的报错信息说环境缺少多个依赖包,于是统统安装:

if (!require("BiocManager", quietly = TRUE))
  install.packages("BiocManager")

BiocManager::install(c('AnnotationDbi', 'IlluminaHumanMethylation450kanno.ilmn12.hg19', 'bumphunter', 
                       'org.Hs.eg.db', 'TxDb.Hsapiens.UCSC.hg19.knownGene', 'GenomicFeatures', 
                       'GenomicRanges', 'IRanges'))

之后再运行代码,我所需要的包终于安装成功了!!!

library(devtools)
install_github('yuabrahamliu/eClock')

在这里插入图片描述
害,太不容易了,终于搞定了,我想下次再遇到‘…had non-zero exit status.‘的R包安装失败问题,我能够有方向性的解决了,这就是收获吧!下面总结一下,如果你在安装某个R包时采用install.packages(“pkgname”)也遇到了‘…had non-zero exit status.‘这种情况,可以先从以下方面进行解决:

  1. 确定安装包所需要的R版本和系统是否满足;
  2. 安装时添加属性type=‘binary’和dependencies = TRUE,即install.packages(“pakgname”, type=“binary”, dependencies = TRUE);
  3. 如果仍然提示依赖包不可获得,尝试换用其他repositories;

如果上述方法皆不能解决,要认真阅读报错信息,根据提示信息进行检查和调整,也可以浏览https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages获得更多信息。

最后,希望大家的问题都可以得到解决!

  • 57
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值