2014-02-18 58 views
1

一些背景:我是一個相當開始的系統管理員,負責維護我們部門的服務器。該服務器包含多個虛擬機,大多數是Ubuntu SE 12.04,通常每個項目都有獨立的虛擬機。在共享服務器上運行R的包管理

我們使用的工具之一是R和RStudio,也是服務器版本。我已經設置好了,所以每個人都可以通過他們的瀏覽器訪問它,但我仍然想知道處理包管理的最佳方式是什麼。理想情況下,我將有一個文件夾/庫和我們的「常用」軟件包,這在許多項目和用例中很常見。我會管理這個庫,因爲我是sudo中唯一的用戶。我的同事應該能夠在個人的「個人」R文件夾中逐個添加軟件包,如果某個軟件包在我們的主文件夾中不可用,那麼這些文件夾會被檢查爲備份。

我的問題有幾個部分: - 這實際上是一種可行的方法來設置此? - 我該如何配置? - 有沒有一種方法可以輕鬆自動化該庫以供其他VM使用?

我有關於Python的一個類似的問題,但也許我應該做的,一個新的問題..

+0

歡迎來到SO。這應該去[超級用戶](http://superuser.com/),看看頁面[問],他們可以更好地回答你。祝你好運 – Llopis

+1

@Llopis系統管理員問題通常發生在服務器故障上,但這是關於編程工具,所以它是可以的。來自http://stackoverflow.com/help/on-topic「關於專業服務器,網絡或相關基礎架構管理的問題與Stack Overflow無關,除非它們直接涉及編程或編程工具」 –

回答

7

R支持默認情況下爲包多libaries。庫基本上就是放置已安裝軟件包的文件夾。 您可以使用

.libPaths() 
中的R

查看哪些路徑是用作您的系統庫。在我的Ubuntu 13.10系統中,有

  • 個人圖書館在 「〜/ R/x86_64的-PC-Linux的GNU庫/ 3.0」,其中由用戶安裝包放置,
  • 「的/ usr/lib/R/library「,其中放置了通過apt-get安裝的軟件包,並且」/ usr/lib/R/site-library「是由所有用戶共享的軟件包的系統範圍庫。

您可以向R添加額外的庫,但是從我如何理解您的問題中,將軟件包安裝到/ usr/lib/R/site-library可能是您正在查找的內容。這可以通過以root身份運行R並像往常一樣從那裏調用install.packages()和update.packages()來相對容易地歸檔。但是,以root身份運行R是一種安全風險,並不是一個好主意,所以也許最好創建一個具有對/ usr/lib/R/site-library的寫訪問權限的獨立用戶,並使用該用戶而不是root用戶。

如果你在多個虛擬機上掛載/ usr/lib/R/site-library,他們也應該共享安裝在那裏的軟件包。這回答了你的問題了嗎?

2

擁有共同的圖書館和個人圖書館位置是完全可行的。

每個用戶應該設置兩個環境變量。 R_LIBS應該指向公共庫,並且R_LIBS_USER應該指向他們的個人位置。有關更多信息,請參見?.Library

您可以使用.libPaths()來檢查用戶的庫路徑。您可能希望用戶將軟件包安裝到其個人庫中,因此可能需要進行一些調整以確保個人庫是.libPaths()中的第一個元素。