2015-04-06 74 views
0

我以前曾遇到过这个问题,但我无法弄清楚解决问题的最佳方法。在OS X上使用brew升级R

我正在将r从v3.1.2_1升级到v3.1.3,并使用brew upgrade r。但是当我这样做时,我失去了在v3.1.2_1下安装的所有库。我必须从头开始安装所有的库。

问题似乎是brew为/usr/local/Cellar/r的两个不同版本的R创建了两个独立的目录结构。有没有办法通过告诉它使用已安装的现有库来安装R?

我可以将文件从一个版本复制到另一个版本,但我害怕破坏某些东西。

+0

你甚至改变你的软件包目录吗?我相信默认的用户包目录是3.1.x的“/Users/username/Library/R/3.1/library”。由于更新是一个小的更新,它不应该更改用户目录。如果用户软件包目录不存在,请尝试创建一个。并检入R:'.libPaths()'。 – 2015-04-06 22:05:14

+0

我没有更改软件包目录。做'.libpaths()'给出:'“/usr/local/Cellar/r/3.1.2_1/R.framework/Versions/3.1/Resources/library”' – vyom 2015-04-07 05:48:11

+0

可能重复[每次我使用自制软件升级R我需要再次安装大部分软件包](https://stackoverflow.com/questions/27866834/everytime-i-upgrade-r-using-homebrew-i-need-to-install-most-packages-again) – slhck 2017-07-12 13:38:27

回答

0

你可以告诉R其中存储库:

R_LIBS=~/Rlibs 

的R新版将寻找此文件夹中的库。但是您仍然需要更新库:

update.packages() 

详细信息概述于this post。作为一个副作用,看R FAQ中的point 2.8,这个是针对Windows的,但重点是相当通用的。您可能愿意按旧式安装或安装新库。

+0

谢谢。 R FAQ的链接有所帮助。我按照那里的说明将我的旧包复制到新安装。我很欣赏在R_LIBS中使用自定义库路径的一点,但是如果我没有错,那只会帮助从这一点开始安装的软件包。我正在询问我已经安装了哪些软件包(其中有很多),我想用R的新版本。 – vyom 2015-04-07 06:15:34

+0

@vyom原则上,最安全的方法是将软件包重新安装到指定的目录中然后进行更新。如果你坚持移动你的软件包,看看[这个讨论](http://superuser.com/questions/474511/move-installed-r-library-to-other-directory),你可以尝试移动你的包从一个目录到另一个目录,但我不会推荐。为了节省时间[你可以通过一些整洁的循环安装包](http://stackoverflow.com/questions/8175912/load-multiple-packages-at-once)。 – Konrad 2015-04-07 10:23:18