关于安装:我应该如何处理“包’xxx’不可用(对于R版x.y.z)”警告?

How should I deal with “package 'xxx' is not available (for R version x.y.z)” warning?

我试图安装一个程序包,使用

1
install.packages("foobarbaz")

但收到了警告

1
2
Warning message:
package 'foobarbaz' is not available (for R version x.y.z)

为什么R不认为包是可用的?

另请参阅这些与此问题的具体实例相关的问题:

我的包裹不适用于R 2.15.2包"rbbg"不可用(适用于R版本2.15.2)软件包不可用(适用于R版本2.15.2)install.packages中的包domc不适用于r版本3.0.0警告依赖项"rglpk"不可用于包"fportfolio"如果R版本没有可用的包,该怎么办?R版本3.0.1的Bigvis软件包不可用吗?包"syncwave"/"mvcwt"不可用(适用于R版本3.0.2)"钻石"包不可用(适用于R版本3.0.0)R的PLYR软件包是否不适用于R版本3.0.2?https://stackoverflow.com/questions/21580661/installing-predictabel-package-on-r-2-15-2未在R 64 3.0.2上安装程序包Bigmemory包"maker"不可用(适用于3.0.2版)包"rtn"不可用(对于R版本3.0.1)安装geor包时出现问题包"twitter"不可用(适用于R版本3.1.0)如何安装"rcpp,package"?我得到"包裹不可用"包"dataset"不可用(对于R版本3.1.1)"包'rhipe'不可用(对于R版本3.1.2)"https://stackoverflow.com/questions/31439092/package-dplyr-is-not-available-for-r-version-3-1-1


1。你不会拼写好的。

首先要测试的是您是否正确拼写了包的名称?包名称在R中区分大小写。好的。

2。你找不到合适的存储库好的。

接下来,您应该检查包是否可用。类型好的。

1
setRepositories()

看到了吗?设置存储库。好的。

要查看R将在哪个存储库中查找您的包,可以选择选择其他存储库。至少,您通常希望选择CRAN,如果使用windows,则选择CRAN (extras),如果执行任何[gen/prote/metabol/transcript]omics.>del>生物分析,则选择Bioc*存储库。好的。

要永久更改此设置,请在您的Rprofile.site文件中添加一行,如setRepositories(ind = c(1:6, 8))。好的。

三。该包不在您选择的存储库中好的。

使用返回所有可用的包好的。

1
ap <- available.packages()

另请参见R可用软件包的名称,?可用。包。好的。

由于这是一个大矩阵,您可能希望使用数据查看器来检查它。或者,您可以通过对行名称进行测试来快速检查包是否可用。好的。

1
2
View(ap)
"foobarbaz" %in% rownames(ap)

或者,可以在cran、cran(extras)、bioconductor、r-forge、rforge和github浏览器中查看可用软件包的列表。好的。

与起重机后视镜交互时可能收到的另一个警告信息是:好的。

1
Warning: unable to access index for repository

这可能表示选定的CRAN存储库当前不可用。您可以使用chooseCRANmirror()选择不同的镜像,然后再次尝试安装。好的。

包可能不可用有几个原因。好的。

4。你不想要包裹好的。

也许你真的不想要包裹。对于包和库,或者包和数据集之间的区别,通常会混淆。好的。

A package is a standardized collection of material extending R, e.g. providing code, data, or documentation. A library is a place (directory) where R knows to find packages it can use

Ok.

要查看可用的数据集,请键入好的。

1
data()

5。R或生物导体已过时好的。

它可能依赖于更新版本的R(或者它导入/依赖的包之一)。看好的。

1
ap["foobarbaz","Depends"]

并考虑将R安装更新到当前版本。在Windows上,通过installr软件包最容易实现这一点。好的。

1
2
library(installr)
updateR()

(当然,您可能需要先使用install.packages("installr")。)好的。

对于生物导体封装,您可能需要更新您的生物导体安装。好的。

1
2
source("http://bioconductor.org/biocLite.R")
biocLite("BiocUpgrade")

6。包裹过期了好的。

它可能已经存档(如果不再维护并且不再通过R CMD check测试)。好的。

在这种情况下,可以使用install_version()加载包的旧版本。好的。

1
2
library(remotes)
install_version("foobarbaz","0.1.2")

另一种选择是从Github起重机后视镜安装。好的。

1
2
library(remotes)
install_github("cran/foobarbaz")

7。there is不是Windows / Linux二进制/ OS X>

它可能not have to Windows二进制的两个额外的requiring does not have that cran软件。additionally some are available,packages the sources for some or只走到平台。在这房子,there may be the CRAN (extras)在版本库中(EEA setRepositoriesabove)。>

if the包装……compiling队列(例如C、C++、Fortran),那么Windows安装在线或在线rtools OS X install the developer Xcode工具附带的源码,和install the version of the package。>

1
2
3
4
5
install.packages("foobarbaz", type ="source")

# Or equivalently, for Bioconductor packages:
source("http://bioconductor.org/biocLite.R")
biocLite("foobarbaz", type ="source")

你可以告诉cran在线,如果你需要特殊的工具从开源模式建立茶叶包装茶叶NeedsCompilation旗看着the description。>

8。茶叶包装bitbucket GitHub /在线/ gitorious is>

它可能有一个bitbucket /在线/ gitorious GitHub库。这些packages require to install the remotes包装。>

1
2
3
4
library(remotes)
install_github("packageauthor/foobarbaz")
install_bitbucket("packageauthor/foobarbaz")
install_gitorious("packageauthor/foobarbaz")

(as with You may need to installrinstall.packages("remotes")第一。)>

9。there is不开源version of the package>

尽管二进制version of the package is available你is not,the开源版本。你可以把这个check by setting off>

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

在这我知道答案的模式描述的程序办理。imanuelc and the details of ?install.packages截面。>

10。在茶叶包装中存放的是非标准>

你的包是在非标准库(例如Rbbg)。assuming that is with cran标准EN reasonably就绪,你可以下载它的使用仍然install.packages;你只是specify have to the URL库。>

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

RHIPEon the other手不在cran样库与教学有自己安装。>

好吧。


在最新的R(3.2.3)中有一个bug,它有时会阻止它找到正确的包。解决方法是手动设置存储库:

1
install.packages("lubridate", dependencies=TRUE, repos='http://cran.rstudio.com/')

在其他问题中找到解决方案


有些版本的Rlibcurl似乎有问题。我在Mac (R version 3.2.2)Ubuntu (R version 3.0.2)上也有同样的问题,在这两种情况下,只要在install.packages命令之前运行它就可以解决。

1
options(download.file.method ="wget")

这个解决方案是由一个朋友提出的,但是我在任何一个论坛上都找不到它,所以我把这个答案提交给了其他人。


11。R(或其他依赖项)已过期,您不想更新它。

警告:这并不是最佳实践。

  • 下载包源。
  • 导航到DESCRIPTION文件。
  • 使用文本编辑器删除有问题的行,例如

    1
    Depends: R (>= 3.1.1)
  • 从本地(即从DESCRIPTION的父目录)安装,例如

    1
    install.packages("foo", type="source", repos=NULL)


这个解决方案可能会破坏r,但这里是一个最简单的解决方案,可以工作99%的时间。

你需要做的只是:

1
install.packages('package-name',repos='http://cran.us.r-project.org')

正如作者在这里提到的


这节省了我很多时间调试出了什么问题。在许多情况下,只是过时的镜子。此功能可以使用https://cran.rstudio.com/安装多个包及其依赖项:

1
2
3
4
5
6
7
8
packages <- function(pkg){
    new.pkg <- pkg[!(pkg %in% installed.packages()[,"Package"])]
    if (length(new.pkg))
        install.packages(new.pkg, dependencies = TRUE, repos='https://cran.rstudio.com/')
    sapply(pkg, require, character.only = TRUE)
}

packages(c("foo","bar","baz"))


我遇到的一件事是,我的Linux发行版提供的R版本(Ubuntu 14.04提供的R版本3.0.2)对于Cran上最新版本的软件包来说太旧了(在我的例子中,从今天起,是plyr版本1.8.3)。解决方案是使用我发行版的包装系统,而不是尝试从R安装(apt-get install r-cran-plyr让我使用plyr的1.8.1版)。也许我可以尝试使用updateR()更新r,但我担心这样做会干扰我的发行版的包管理器。


当我收到同样的警告时,这就是我最终可以在R-3.4.1中安装psych包的方法。

1:搜索那个包裹。

2:通过tar.gz扩展手动下载

3:为R中的安装包选择了选项"package archive file(.zip;.tar.gz)"。

4:本地浏览到下载位置并单击安装

您可能会收到一个警告:依赖项"xyz"不适用于该包,然后首先从存储库安装这些依赖项,然后执行步骤3-4。.


我在Ubuntu上仔细地按照安装r的说明修复了这个错误。这包括:

  • deb http://cran.utstat.utoronto.ca/bin/linux/ubuntu trusty/添加到my/etc/apt/sources.list文件
  • 运行sudo apt-get update
  • 运行sudo apt-get install r-base-dev
  • 第一步,如果你愿意的话,你可以选择任何一个CRAN下载镜像来代替我的多伦多大学。


    我有同样的问题(在Linux上),可以通过更改代理设置来解决。如果您在代理服务器后面,请在R中使用Sys.getenv("http_proxy")检查配置。在我的~/.Renviron中,我有以下行(来自https://support.rstudio.com/hc/en-us/articles/200488488-configuring-r-to-use-an-http-or-https-proxy)导致了这个问题:

    1
    2
    http_proxy=https://proxy.dom.com:port
    http_proxy_user=user:passwd

    将其更改为

    1
    http_proxy="http://user:[email protected]:port"

    解决了问题。你也可以对https做同样的事情。

    当我读到"包XXX不适用于R版本-X-Y-Z"时,这不是第一个想到的……

    高温高压


    在从源代码安装R包时,我犯了一个错误,忘记了放repos=NULL。在这种情况下,错误消息有点误导性:package 'foobarbaz' is not available (for R version x.y.z)

    问题不是R的版本,而是repos参数。我做的是在这个场合为我工作的《以东记》1(3)。

    希望这能帮助别人。


    当我使用生物导体作为源,然后调用BiocLite时,它几乎总是对我有效。例子:

    1
    2
    source("https://bioconductor.org/biocLite.R")
    biocLite("preprocessCore")


    另一个小的添加,当尝试使用docker映像rocker/r-ver:3.1.0测试旧的R版本时

  • 默认的repos设置为MRAN,无法获得很多包。
  • 这个版本的R没有https,因此,例如:install.packages("knitr", repos ="https://cran.rstudio.com")似乎有效。

  • 如本文(法语)所述,当您的计算机上安装了两个版本的R时,就会发生这种情况。卸载最旧的,然后再次尝试安装包!对我来说很管用。


    开发工具+Github。这3行(帮助我解决了这个错误)还没有提到:

    1
    2
    3
    install.packages("devtools")  # if not already installed
    library(devtools)
    install_git("https://github.com/profile/foobarbaz_repository")

    我在安装软件包"情感"时遇到了同样的问题。开始搜索并尝试了许多命令。最后,使用以下命令安装包:

    1
    install_url("http://cran.r-project.org/src/contrib/Archive/sentiment/sentiment_0.2.tar.gz")