2015-04-06 73 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