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


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

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

    然后就报下方错误:

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    根据提示信息‘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")
    
    • 1
    • 2
    • 3
    • 4

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

    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'))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    library(devtools)
    install_github('yuabrahamliu/eClock')
    
    • 1
    • 2

    在这里插入图片描述
    害,太不容易了,终于搞定了,我想下次再遇到‘…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获得更多信息。

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

  • 相关阅读:
    java-net-php-python-jspm看病预约信息管理系统计算机毕业设计程序
    流式结构化数据计算语言的进化与新选择
    当我让文心一言写个代码来庆祝1024程序员节,它写的代码是……
    周围神经系统分哪几部分,神经系统按位置分类为
    基于MDK-Keil环境如何把STM32程序直接下载到SRAM运行
    dialogx,给大家推荐一个开源安卓弹窗组件。
    二叉树链式结构的实现及简单操作(画图超详细解释)
    【datawhale202206】pyTorch推荐系统:多任务学习 ESMM&MMOE
    Linux命令(123)之mail
    运维问题解决常用命令
  • 原文地址:https://blog.csdn.net/qq_41596063/article/details/126724088