美文网首页R
一个R包怎么也安装不上,那就本地安装呗?

一个R包怎么也安装不上,那就本地安装呗?

作者: 刘小泽 | 来源:发表于2019-12-29 13:57 被阅读0次

    刘小泽写于19.12.29
    今天看到一位朋友的一个R包安装了很多遍,总是显示某个路径写不进去。但是他的其他R包都是可以顺利安装的,如果要坚持安装好这个包,怎么办?另外如果在线安装总是报错,怎么办?
    另外,其中会包含其他的R语言小技巧

    问题

    hugene10sttranscriptcluster.db为例,可以看到现在是没有这个包的

    正常情况下,直接使用BiocManager::install("hugene10sttranscriptcluster.db")方法去安装,一般没有问题。

    但是如果报错信息提示

    # installation path not writeable, unable to update packages: ...
    

    也就是某个路径写入不进去(Windows电脑此问题居多)

    来看一下我们包的默认安装路径:

    .libPaths()
    # 比如我的是:
     "/Library/Frameworks/R.framework/Versions/3.6/Resources/library"
    

    【附】如果想修改默认的R包安装路径,可以看 R小技巧-R包的多版本控制

    # 先看看当前有什么路径
    .libPaths()
    # 然后加入新路径
    myPaths <- .libPaths()  
    # 例如新路径是:~/R/3.6.0/library
    new <- c('~/R/3.6.0/library')
    myPaths <- c(myPaths, new) 
    .libPaths(myPaths) 
    

    再用命令行看看我们现在有没有这个包

    find /Library/Frameworks/R.framework/Versions/3.6/Resources/library -name "hugene*.db"
    

    可以看到,只有hugene20sttranscriptcluster.db ,而没有hugene10sttranscriptcluster.db

    如何解决这个问题?

    • 如果之前使用了原始方法安装过,那么先把这个安装包删掉,完全从头开始:

      remove.packages("hugene10sttranscriptcluster.db")
      
    • 如果之前没有装过,也可以直接从这里开始,即本地安装

    第一步 去Bioconductor下载tar.gz安装包

    还是以这个包为例:

    http://bioconductor.org/packages/release/data/annotation/html/hugene10sttranscriptcluster.db.html

    把这个包放在一个绝对能够读取的路径,比如:下载桌面等等

    第二步 一句话本地安装

    比如我将这个安装包放在了~/Download👇下面

    install.packages("/home/Downloads/hugene10sttranscriptcluster.db_8.7.0.tar.gz",repos = NULL, type="source")
    
    • 注意点一「加了两个参数」
      repos = NULL, type="source"

    • 注意点二「路径的写法」
      mac / linux 的路径是:/home/d1/hugene10sttranscriptcluster.db_8.7.0.tar.gz

      windows的路径是:C:\\hugene10sttranscriptcluster.db_8.7.0.tar.gz

    最后,再用命令行看一下

    安装完后,安装包可以保存也可以删掉了

    如果安装还错...

    安装这个hugene10sttranscriptcluster.db 依然出现了报错。最开始我的直觉让我关注:Error,但是它列出来的AnnotationDbi是安装过的,也能加载。

    那么只能继续看报错了,极容易忽视的问题就出在:vctrs ,我以为是一个动态链接库(DLL),但实际上人家是一个R包,安装一下这个R包,问题也就迎刃而解。

    附加

    如何查看某个包的依赖包?

    可以使用gtoolshttps://www.rdocumentation.org/packages/gtools/versions/3.5.0/topics/getDependencies

    install.packages("gtools")
    library(gtools)
    
    > getDependencies("hugene10sttranscriptcluster.db")
     [1] "magrittr"      "assertthat"    "backports"     "ellipsis"      "glue"         
     [6] "zeallot"       "bit"           "prettyunits"   "rlang"         "vctrs"        
    [11] "digest"        "bit64"         "blob"          "memoise"       "pkgconfig"    
    [16] "Rcpp"          "BH"            "plogr"         "BiocGenerics"  "Biobase"      
    [21] "IRanges"       "DBI"           "RSQLite"       "S4Vectors"     "AnnotationDbi"
    [26] "org.Hs.eg.db" 
    

    欢迎关注我们的公众号~_~  
    我们是两个农转生信的小硕,打造生信星球,想让它成为一个不拽术语、通俗易懂的生信知识平台。需要帮助或提出意见请后台留言或发送邮件到jieandze1314@gmail.com

    Welcome to our bioinfoplanet!

    相关文章

      网友评论

        本文标题:一个R包怎么也安装不上,那就本地安装呗?

        本文链接:https://www.haomeiwen.com/subject/sguyoctx.html