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 文件安装了包(这些包恰好是 ggplot2 和 data.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之前构建的:请重新安装它”的原因的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ui.R 中读取 TextInput,在 global.R 中使用此值处理查询并使用 Shiny 在 server.R 中显示