0

在 Linux Ubuntu 12.04 上安装Rcpp,R2.15.2 NB 昨天安装了 R 和 rcpp;所以我希望最新版本,但Rcpp安装为过时版本!

> old.packages()

     Package LibPath                   Installed  Built    ReposVer  
Rcpp "Rcpp"  "/usr/lib/R/site-library" "0.9.9"    "2.14.1" "0.10.2"  
rgl  "rgl"   "/usr/lib/R/site-library" "0.92.798" "2.12.1" "0.92.894"
     Repository                                 
Rcpp "http://www.stats.bris.ac.uk/R/src/contrib"
rgl  "http://www.stats.bris.ac.uk/R/src/contrib"
> update.packages("Rcpp")

如最后一行所示,它根本没有更新包Rcpp;是什么原因造成的,我能做些什么来解决这个问题?

注意:尝试从两个不同的存储库重新安装,这两个存储库都声称拥有最新版本的 rcpp 0.10.2。

问候

杰夫

4

1 回答 1

4

你简直误会了。

您拥有的 Rcpp 来自Ubuntu,并通过apt-getet al 安装。当发行版冻结时,该版本被冻结。这类似于 gcc、emacs... 不是现在可用的最新版本,而是发行版制作时采用的版本。顺便说一句,即使是那个 Ubuntu 版本现在也有一个版本过时了,因为 12.10 已经发布了......

所以你的问题标题是错误的。您拥有的版本已正确安装为 Ubuntu 12.04 的一部分。 现在有意义吗?

现在,如果您通过 CRAN 从 CRAN 安装 Rcpp,install.packages()您将获得当前版本,与 rgl 同上。

(并且在启动板上还有一个 PPA,可能两者都作为预构建的 .deb 包。)

最后,前面已经解释过,路径/usr/lib/R/site-libraryr-cran-*您作为 .deb 文件安装的软件包,其中/usr/local/lib/R/site-library是您从 R 本身进行的本地安装。由于这种拆分,它的输出old.packages()是从前一条路径驱动的,例如/usr/lib/R/site-library,由于它是由发行版管理的,所以它被绑定到后面,这里是 Ubuntu。您选择该发行版是因为其组件的稳定性——您可以自由地使用/usr/local/lib/R/site-library. 这绝对是一个功能。

从我的 Ubuntu 盒子中见证这一点:

R> old.packages(lib.loc="/usr/local/lib/R/site-library/")
NULL
R> 
于 2012-12-23T23:24:50.250 回答