2011-09-24 75 views
10

各種R軟件包不同安裝位置的邏輯是什麼?我似乎在我的Linux機器上安裝了幾個不同位置的軟件包。這是典型的行爲,如果是這樣的話,在/ usr/lib/R/library vs/usr/lib/R/site-library中安裝軟件包有什麼理由?我並不在乎軟件包的安裝位置,但安裝程序分佈在整個系統的不同位置看起來很愚蠢。Linux下R軟件包的安裝位置邏輯

Renviron的註釋如下,似乎表明/ usr/lib/R/site-library是用於Debian打包的軟件包,但並沒有真正解釋其他兩個目錄的用途。另外,通過在列表中設置最後一個/ usr/lib/R /庫,這不會使它成爲install.packages()的缺省目錄嗎?

# edd Apr 2003 Allow local install in /usr/local, also add a directory for 
#    Debian packaged CRAN packages, and finally the default dir 


> .libPaths() 
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"  
[3] "/usr/lib/R/library"  

回答

8

馬特,

您概括從特定的(於Debian/Ubuntu)與通用(所有的Linux發行版),以錯誤的方式。

這個特定的設置是由兩位Debian使用的R Core成員向我推薦的(這是在Ubuntu開始之前)。這是而不是這是一個R範圍的建議,這就是爲什麼你不能在手冊中找到它的原因,而是由R高級用戶在Debian和Debian類似系統上實現的特定建議。

的基本思想是

  • 保持完全忠實於/usr//var/分離,....由包管理系統來處理(例如apt-getdpkg,... ),一方面,和/usr/local/...等通過在另一方面用戶:這兩個應從未混合

  • 使/usr/local/lib/R/site-library得到冷杉在由.libPaths()發射並且因此在列表噸點成爲默認,從而確保用戶安裝的包結束下面/usr/local/按照建議的包裝(包括在先前的點

  • 使得下面/usr我們得到的r之間的分離基本的R源也是:boot,grid,lattice,...)裏面/usr/lib/R/library,然後所有其他包管理控制r-cran-*/usr/lib/R/site-library以下。所以例如r-cran-xml結束了那裏,還是r-cran-zoo,或...

我仍然認爲拆分是了不起的,這就是爲什麼我保持這樣的設置可以在Debian R封裝。

對於所有用戶而言,爲所有用戶提供本地軟件包是一個多用戶操作系統的好主意。

+0

好的,謝謝。我認爲這可能是我作爲一個相對較新的Linux(Ubuntu)用戶無法掌握的分裂原因。 –