我在本地(公司)仓库上有一个名为rpackage
的软件包。当我运行install.packages("rpackage")
时,它告诉我:
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
package ‘rpackage’ is not available (for R version 2.15.2)
我已使用R CMD INSTALL --build .
构建此程序包,已发布到本地存储库并运行tools::write_PACKAGES()
以更新PACKAGES
文件。当我运行R --version
时,我得到:
R version 2.15.2 (2012-10-26) -- "Trick or Treat"
Copyright (C) 2012 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: i386-w64-mingw32/i386 (32-bit)
当我跑R CMD INSTALL --build --version
时,我得到:
R add-on package installer: 2.15.2 (r61015)
本地repo目录结构遵循official documentation并一直有效,直到我更新到R 2.15.2。结构是:
\\server\folder\R\bin\windows\contrib\
2.11\
2.12\
2.13\
2.14\
2.15\
\\server\folder\R\src\contrib\
如果我在R 2.15.1中运行install.packages("rpackage")
我没有问题。为了让它与新版本的R一起使用,我需要做些什么特别的事情吗?
我注意到CRAN服务器使用的目录结构略有不同。例如,CSIRO CRAN镜像使用:
http://cran.csiro.au/bin/windows/contrib/r-release/
有关如何解决此问题的想法吗?
非常感谢。
答案 0 :(得分:7)
不幸的是,帮助文件或错误消息都没有解释为什么会发生此错误。由于它是turns out,当源包不可用时,install.packages()
也会失败,但二进制包也会失败。这不是记录在案的行为(或更慷慨 - 没有明确记录):
对于二进制安装,该函数还检查同一存储库中源包的可用性,并报告源包是否具有更高版本,或者是否可用但没有二进制版本。可以通过
来抑制此检查options(install.packages.check.source = "no")
要修复,options(install.packages.check.source = FALSE)
。这也可以包含在您的.First
功能中。
答案 1 :(得分:2)
我不确定imanuelc的解决方案是否适合所有人,因为它对我不起作用:
> options(install.packages.check.source = FALSE)
> install.packages("rstudio", lib="C:/Program Files/R/R-2.15.2/library", dep=TRUE)
Warning in install.packages :
package ‘rstudio’ is not available (for R version 2.15.2)
在我的情况下,我已经看到这个错误来到某些软件包,如tm,rjson等。我知道是 R 2.15的所有软件包的一个版本,因为大多数实际上它们来自我的IDE,我只是想让它们安装到一个特定的目录中(我希望在那里为不同IDE的未来编码器安装install.packages语句)。
我不能说我知道根本原因,但对我来说,解决方法是直接从镜像下载二进制文件并在代码中“手动”安装它们。
答案 2 :(得分:1)
尝试将R升级到新版本。
首先更新sources.list
文件。您可以使用以下命令执行此操作:
nano /etc/apt/sources.list
将以下行添加到此文件中:
deb http://cran.r-project.org/bin/linux/debian/ wheezy-cran3/
然后做:
apt-get update
删除旧版本:
apt-get remove r-base-core
使用以下命令安装:
apt-get install r-base r-base-dev