2011-04-06 80 views
15

我剛剛開始使用Ubuntu並希望在R中編程。我成功地從終端安裝了最新版本的R(當前爲2.12.2)。然後我試圖運行下面的命令:在Debian/Ubuntu中安裝R Package XML

> install.packages("XML") 
Installing package(s) into ‘/usr/local/lib/R/site-library’ 
(as ‘lib’ is unspecified) 
Warning in install.packages("XML") : 
    'lib = "/usr/local/lib/R/site-library"' is not writable 
Would you like to create a personal library 
'~/R/i686-pc-linux-gnu-library/2.12' 
to install packages into? (y/n) 

我應該創建個人目錄或我錯過了什麼地方了一步,讓我寫網站庫。

在此先感謝。

+8

什麼時候開始通過'sudo'或者只是作爲一個普通用戶的'R'的殼呢?普通用戶沒有寫入'/ usr/local/lib /'的權限,所以如果你首先用'sudo'啓動'R',它應該允許寫入站點庫目錄。 – sarnold 2011-04-06 00:25:27

+0

只需按y。 :) – 2011-04-06 05:32:04

+4

最好使用'/ usr/local/lib/R/site-library /'。畢竟,Unix是一個多用戶系統。 – 2011-04-06 17:19:24

回答

30

sarnold的評論是非常正確的。在Debian的(並且因此Ubuntu的)封裝件,該目錄/usr/local/lib/R/site-library/由文件/var/lib/dpkg/info/r-base-core.postinst腳本創建 - 和相關的代碼是:

# edd 03 Apr 2003 cf Section 10.1.2 of Debian Policy 
if [ ! -e /usr/local/lib/R ]; then 
    if mkdir /usr/local/lib/R 2>/dev/null; then 
    chown root:staff /usr/local/lib/R 
    chmod 2775 /usr/local/lib/R 
    fi 
fi 
if [ ! -e /usr/local/lib/R/site-library ]; then 
    if mkdir /usr/local/lib/R/site-library 2>/dev/null; then 
    chown root:staff /usr/local/lib/R/site-library 
    chmod 2775 /usr/local/lib/R/site-library 
    fi 
fi 

所以目錄由root:staff和的模式2775,或「用戶所擁有和組讀寫,其他只讀「。

所以寫在那裏,你有兩個基本的選擇:

  1. 始終使用sudo或成爲root這是笨拙的。

  2. 將自己加入羣組staff。可能有一個用戶友好的GUI;我是Unix老派,通過編輯/etc/group/etc/gshadow手動完成 - 之後,你可以直接安裝(你需要一個新殼來擁有這些權利,或者只是啓動一個新的終端)。你當然也可以選擇一個不同的組,或者創建一個,但是你也需要相應地改變目錄樹/usr/local/lib/R/

希望這會有所幫助。 r-sig-debian列表對於像這樣的Debian/Ubuntu問題是一個友好的地方,我推薦它。問題出現在那裏。

編輯:另外,(更復雜)封裝相當數量是Ubuntu的/ Debian的一部分,因此要獲得XML,你可以只是sudo apt-get install r-cran-xml。做一個apt-cache search r-cran看看有什麼可用的。

+1

謝謝,巨大的幫助。 – Btibert3 2011-04-08 01:23:38

+6

「sudo adduser用戶組」將把現有的USER添加到現有的GROUP。 – neilfws 2012-05-07 08:43:30

+0

選項2.在Ubuntu 14.04上不起作用。 – 2014-08-07 06:33:31

8

最簡單的選擇是將自己添加到staff用戶組。剛剛運行:

sudo adduser <user> staff 

用您的用戶名替換<user>

測試在Ubuntu 14.04