155-一个R包怎么也安装不上,那就本地安装呗?
刘小泽写于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包,问题也就迎刃而解。
附加
如何查看某个包的依赖包?
可以使用gtools
(https://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"