R中“错误:包'_____'是在3.0.0之前构建的:请重新安装它”的原因

Posted

技术标签:

【中文标题】R中“错误:包\'_____\'是在3.0.0之前构建的:请重新安装它”的原因【英文标题】:Causes of "Error: package '_____' was built before 3.0.0: please re-install it" in RR中“错误:包'_____'是在3.0.0之前构建的:请重新安装它”的原因 【发布时间】:2013-06-03 23:42:23 【问题描述】:

在一台运行 R 2.15.2 的计算机上,我从 .zip 文件安装了包(这些包恰好是 ggplot2data.table,但我没有不认为特定的包是我的问题。)一切正常。我将这些软件包带到没有互联网连接的计算机上并安装它们。这台计算机正在运行 R 3.0.1。这些软件包似乎可以毫无问题地安装(使用 R 的“从本地 zip 文件安装软件包”选项)。当我使用 library() 调用包时,出现以下错误:

Error: package '<insert name of newly installed package here>' was build before 3.0.0: please-re-install it

谁能解释引发此错误的潜在原因?是否有 .zip 包必须在其中才能正确安装的特定目录?如果 R 安装在与 .zip 包加载位置不同的分区上,这会导致错误吗?

我很茫然,非常感谢任何指针。这是一个很难复制的;如果您需要任何其他版本/系统参数来理解问题,请不要犹豫。

【问题讨论】:

错误原因在错误信息中。您不能在 R >= 3.0.0 中使用使用 R = 3.0.0 重建包。 疯狂的错误信息很有用!我会弄清楚如何做到这一点,然后带着结果返回帖子。 【参考方案1】:

这是我使用的解决方法:

我在可上网的计算机上安装了最新版本的 R。然后我加载了我需要的包(包->安装包->选择镜像->选择包...

R 完成安装后,会显示临时 .zip 包所在位置的消息。我导航到这个位置,抓起临时包,并将其刻录到 cd 上。

通过这种方式,我可以将更新的软件包构建到没有互联网访问的计算机上。我仍然很想知道是否有一种简单的方法可以重建在早期 R 版本上下载的包,以使其与最新版本兼容(无需互联网连接)。

感谢@JoshuaUlrich 为我指明正确的方向

【讨论】:

干得好。你不能只是简单地从 CRAN 上拿走包裹吗?即从这里获取适当的二进制或源包:cran.r-project.org/web/packages/ggplot2/index.html 那是错了。执行R CMD INSTALL --build foo_1.2.3.tar.gz,它将为您构建一个适当的 zip 存档。 作为一个R新手,对上面的方向不太了解,但是如果你能在回答中解释一下,我会试一试,很乐意给你√ @Chase download.packages 会这样做【参考方案2】:

我正在精确地使用 rkward

我在使用 rkward 时遇到了类似的错误。特别是这个:

'lib = "/usr/local/lib/R/site-library"' is not writable

我暂时更改了这个目录的权限,以便 rkward 可以从它的控制台运行它:

 update.packages(checkBuilt = TRUE, ask = FALSE)

全部解决这个问题:

Error: package '' was build before 3.0.0: please-re-install it

这样(叹息...)我可以精确地修复音频的“默认”配置。我无法在 rkward 中使用 play() 等。

只需要 phonon-backend-gtstreamer

【讨论】:

【参考方案3】:

我在查看GitHub ggplot2 issue #796时找到了这个解决方案

update.packages(checkBuilt = TRUE, ask = FALSE)

它将更新所有需要重新安装的包。

【讨论】:

contrib.url(repos, type) 中的错误:尝试使用 CRAN 而不设置镜像【参考方案4】:

运行 install.packages("codetools") 可以解决 R 3.0.2 的这个问题,如果你有和我一样的问题:

installing to /home/user/R/x86_64-pc-linux-gnu-library/3.0/Rcpp/libs
** R
** inst
** preparing package for lazy loading
Error : package ‘**codetools**’ was built before R 3.0.0: please re-install it
Error : unable to load R code in package ‘Rcpp’
ERROR: lazy loading failed for package ‘Rcpp’

【讨论】:

运行对于 codetools 所依赖的每个包都会给我同样的错误。欢迎来到包依赖地狱......没有递归重建一切的选项吗?我认为这是每个包装系统的标准功能吗?【参考方案5】:

我尝试在 ubuntu 12.04LTS 上的 R(v3.1.0) 上安装 swirl:

sudo R
install.packages("swirl")

但遇到了类似的错误:

错误:包“codetools”是在 R 3.0.0 之前构建的:请重新安装它 错误:无法在包“httr”中加载 R 代码 错误:包“httr”的延迟加载失败 *删除'/usr/local/lib/R/site-library/httr' 错误:依赖项“testthat”、“httr”不适用于包“swirl” * 删除'/usr/local/lib/R/site-library/swirl'

以下操作帮助了我:

install.packages('codetools')
install.packages("swirl")
library("swirl")
swirl()

|欢迎漩涡!请登录。如果您以前来过这里,请使用相同的 |像你当时那样命名。如果您是新人,请称自己为独特的人。 我该怎么称呼你?

我希望同样可以帮助解决您的安装问题。

【讨论】:

【参考方案6】:

我按照https://github.com/rstudio/shiny-server/wiki/Ubuntu-step-by-step-install-instructions安装了闪亮的

并在步骤中遇到相同的错误

sudo su - -c "R -e \"install.packages('shiny', repos='http://cran.rstudio.com/')\""

Warning messages:
1: In install.packages("shiny", repos = "http://cran.rstudio.com/") :
 installation of package ‘Rcpp’ had non-zero exit status
2: In install.packages("shiny", repos = "http://cran.rstudio.com/") :
 installation of package ‘httpuv’ had non-zero exit status
3: In install.packages("shiny", repos = "http://cran.rstudio.com/") :
 installation of package ‘shiny’ had non-zero exit status

我通过启动 R 尝试了 Richard Lee 的答案

R

得到了错误

Warning in install.packages("shiny") :
'lib = "/usr/local/lib/R/site-library"' is not writable
Would you like to use a personal library instead?  (y/n) n
Error in install.packages("shiny") : unable to install packages

显然没有写权限,所以

sudo R

现在我又试了一次

install.packages("shiny")

出现了一些错误

Error : package ‘codetools’ was built before R 3.0.0: please re-install it
Error : package ‘RJSONIO’ was built before R 3.0.0: please re-install it
Error : package ‘caTools’ was built before R 3.0.0: please re-install it
Error : package ‘bitops’ was built before R 3.0.0: please re-install it
Error : package ‘digest’ was built before R 3.0.0: please re-install it
Error : package ‘xtable’ was built before R 3.0.0: please re-install it

每次出现错误时,我都会重新安装请求的软件包

install.packages("codetools")
install.packages("RJSONIO")
etc.

最终,我能够安装 Rccp、httpuv,甚至 Shiny。 现在它起作用了!

另见 Shiny package installation on R version 3.0.2 "Frisbee Sailing"

【讨论】:

我喜欢它,因为修复就像按照错误消息提供的指示一样简单......duh! 我不知道这是否有帮助,但install.packages 带有dependencies = TRUE 选项。例如:install.packages('Rmysql', dependencies = TRUE)

以上是关于R中“错误:包'_____'是在3.0.0之前构建的:请重新安装它”的原因的主要内容,如果未能解决你的问题,请参考以下文章

r语言中r-studio怎么调用

R中变量类型

如何在 ui.R 中读取 TextInput,在 global.R 中使用此值处理查询并使用 Shiny 在 server.R 中显示

r在数学中是指啥?

r语言中两个等于号是啥意思

R语言在逻辑回归中求R square R方