如何解决package 'xxx' is not available (for R version x.y.z)

安装R语言包的时候,经常出现:package 'xxx' is not available (for R version x.y.z),搞得人心烦意乱,安装一个软件要个把小时,坑爹啊?
到底要怎么解决这个问题呢?一般有一下思路:

低级错误

检查拼写是否正确?注意大小写

其实已经安装好了,退出R再试一次

  • 如果出现错误
Encountered below error. Any suggestions on how to resolve appreciated.

shiny::runApp()
Error in get(Info[i, 1], envir = env) : lazy-load database 'XX' is corrupt
In addition: Warning message:
In get(Info[i, 1], envir = env) : internal error -3 in R_decompress1

其实只要退出R,再试一次就可以了:The internal error -3 often happens when you use install_github to install a package that's currently loaded; try restarting R and running the app again.

安装方式

源码安装

  • 没有windows/mac/linux的binary文件,可以用源码安装:

install.packages("foobarbaz",type="source")

需要安装相应编译器


* installing *source* package ‘rgeos’ ...

configure: CC: gcc -m64 -std=gnu99

configure: CXX: g++ -m64

configure: rgeos: 0.4-2

checking for /usr/bin/svnversion... yes

cat: inst/SVN_VERSION: No such file or directory

configure: svn revision: 

checking for geos-config... no

no

configure: error: geos-config not found or not executable.

ERROR: configuration failed for package ‘rgeos’

* removing ‘/home/shiyong/R/x86_64-redhat-linux-gnu-library/3.5/rgeos’



下载的程序包在

 ‘/tmp/RtmpUwOGCq/downloaded_packages’里

Warning message:

In install.packages("rgeos", repos = "http://R-Forge.R-project.org", :

  安装程序包‘rgeos’时退出狀態的值不是0

  • 如果出现上面的错误,就安装好geos-devel就可以了

yum install -y geos-devel

没有源码,但是有binary文件

  • 可以把源码安装关了

options(install.packages.check.source = "no")

找错地方了

找对repository

  • 有的包不在CRAN里面
    安装bioconductor的包,必须
source("https://bioconductor.org/biocLite.R")

否则可能报错:


ERROR: compilation failed for package

  • 设置repository的方法
setRepositories()
  • 查看你要的package在不在这个repository里面,以“foobarbaz”为例

ap <- available.packages()

"foobarbaz" %in% rownames(ap)

包在github等网站上面

  • package在github/Bitbucket/Gitorious上面

library(remotes)

install_github("packageauthor/foobarbaz")

install_github("cran/foobarbaz")

install_bitbucket("packageauthor/foobarbaz")

install_gitorious("packageauthor/foobarbaz")

package在一个非标准的repository里,而不是CRAN


install.packages("Rbbg", repos = "http://r.findata.org")

版本问题

需要更新R或Bioconductor了

  • 查看依赖的版本

ap["foobarbaz","Depends"]

package过期了


library(remotes)

install_version("foobarbaz","0.1.2")

最后大招

用conda安装,如

conda install bioconductor-deseq2

手动安装:

install.packages("local.tar.gz",repos=NULL, type="source")

安装好依赖包

install.packages("ggplot2",dependencies=T)

放弃

  • 想想,是不是不需要这个package也可以解决问题?

Changelog:

  • 作者:石勇(sandy,石博士)
  • 时间:20181030
  • 参考:stackoverflow

推荐阅读更多精彩内容

  • 工欲善其事,必先利其器。总结一下,方便多了。R语言还是很牛逼的,可以干很多事情。有一把顺手的刀还是很重要的。 0....
    Liam_ml阅读 3,262评论 1 55
  • Installing MXNet on OS X (Mac) mxnet.io/get_started/osx_s...
    Helen_Cat阅读 1,837评论 2 2
  • 物理层 媒体和互联设备 物理层的媒体包括架空明线、平衡电缆、光纤、无线信道等。通信用的互连设备指DTE和DCE间的...
    anna_hui阅读 428评论 0 0
  • 原来陪真的可以带来不一样的收获! 春天真的可以找出来。在儿子的眼中美在鲜花盛开、美在欣赏春天的草木、美在万物复苏。...
    点点_a232阅读 60评论 0 0
  • 那时我们有梦, 关于文学, 关于爱情, 关于穿越世界的旅行…… 以前每次来这里,都只会点一样,奶提绿茶,不是因为有...
    青崖白萝卜阅读 142评论 3 0