我想在Linux上將多個R庫(*)從一個驅動器移動到另一個驅動器,並希望知道簡單移動是否可行和安全,或者是否應該卸載並重新安裝軟件包。我意識到圖書館的位置是通過.libPaths()
確定的,並查看了「R安裝和管理」手冊以瞭解有關遷移圖書館的信息,但沒有看到推薦的過程。遷移R庫
我認爲三個選項:所有非基本包
- 運行
remove.packages()
,並通過重新install.packages(lib = "/path/to/new/location")
安裝。 - 將使用
mv
庫(目錄),並使用符號鏈接指向到新的位置(並最終移除鏈接就好) - 使用
mv
命令在Linux中移動目錄批發和R_HOME/etc/Rprofile.site
更新.Library.site
,如建議R Installation and Administration manual
選項#1是鈍的。選項#2應該可以工作,但似乎有點不合適。
#3安全嗎?還是存在嚴重的問題?我已經確定的問題是:目錄權限和任何軟件包設置存儲絕對路徑而不是相對路徑(這似乎是不健全和不必要的)的可能性。
關於絕對路徑的存儲,我發現rJava
將R_HOME
的位置存儲在名爲run
的文件中。這不是一個圖書館問題本身,但它是一個包(和一個很好的包)的指示保持絕對路徑的私人副本。
(*)有幾個庫和許多包的分數。自然地,只有庫(目錄)被移動,但包可能會受到影響。
更新1 /澄清:只是爲了澄清:我只遷移庫,而不是改變的R或版本的軟件包的版本。更新R或軟件包可以單獨完成,但問題是移動庫是否可行。看起來,如果有必要更新或重新安裝所有軟件包以確保正確安裝,那麼這是一個類似於選項#1的路徑,比選項#3更類似於選項#1。
更新2:對another SO post的回答在升級時如何避免此問題有一些好的想法。我沒有升級R,但是Dirk Eddelbuettel建議不在R的文件樹中安裝軟件包是明智的。
不確定你想要做什麼,但你可能想看看[這個](http://stackoverflow.com/questions/5721942/making-r-installation-self-contained-user-independent/6709445 #6709445)問題和相關內容。 – Fred
+1知道庫和包之間的區別:-) –
@ gsk3:我希望我修復了這種類型的所有可能的錯誤。我不想因這樣一個術語問題而遭到殘酷的對待。 :) – Iterator