如何解决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
    原文作者:石博士
    原文地址: https://www.jianshu.com/p/1674992b056b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞