2013-10-26 29 views
1

我在Ubuntu中使用R.我意識到我在/usr/local/lib/R/site-library//home/sparhawk/R/x86_64-pc-linux-gnu-library/3.0/都安裝了軟件包。我更喜歡他們都在我的用戶目錄中。如何從超級用戶重新安裝所有R軟件包給用戶?

如何將所有(非基礎)包移動到用戶目錄?如果需要,我很樂意重新安裝R和/或軟件包。

我也試過sudo apt-get purge r-base,但是這並沒有觸及上面列出的根目錄。

回答

0

卸載R和包

首先我吹掃Ubuntu的包

$ sudo apt-get purge r-recommended 
$ sudo apt-get --purge autoremove 
... 
dpkg: warning: while removing r-base-core, directory '/usr/lib/R/library' not empty so not removed 

如上所述,一個目錄未被刪除,所以

$ rm -r /usr/lib/R /tmp 

包裝目錄/usr/local/lib/R/site-library/~/R/x86_64-pc-linux-gnu-library/仍然存在,所以我刪除它們。

$ mv /usr/local/lib/R/ /tmp 
$ mv ~/R/ /tmp/R-user 

重新安裝R和包

sudo apt-get install r-recommended 

運行R.從用戶帳戶(I使用RStudio)。手動安裝軟件包。

有一次,我得到了警告。

Warning message: 
installed directory not writable, cannot update packages 'Matrix' 

因此,不是以超級用戶身份運行R,而是試圖在用戶目錄中安裝另一個版本。我想我已經安裝了兩個版本,但R似乎選擇了較新的版本。

> update.packages() 
Matrix : 
Version 1.0-14 installed in /usr/lib/R/library 
Version 1.1-0 available at http://cran.rstudio.com 
Update (y/N/c)? y 
Warning in install.packages(update[instlib == l, "Package"], l, contriburl = contriburl, : 
    'lib = "/usr/lib/R/library"' is not writable 
Would you like to use a personal library instead? (y/n) y 
... 
> update.packages() 
Warning: package 'Matrix' in library '/usr/lib/R/library' will not be updated 
> packageVersion('Matrix') 
[1] ‘1.1.0’ 

然而,儘管[R看似撿了最新的版本,我仍然得到警告有關無法升級軟件包的消息。

> biocLite("limma") 
Warning message: 
installed directory not writable, cannot update packages 'Matrix' 
0

使用destdir選項與install.packages指定要安裝的包的位置。

install.packages( 「RCPP,DESTDIR =」 〜/ RPackages」,CRAN = 「http://cran.r-project.org」)

+0

謝謝。這僅僅是安裝新的軟件包嗎?如何首先刪除(非基礎)超級用戶軟件包,然後重新開始? – Sparhawk

+0

將R作爲sudo運行,然後執行'remove.packages(pkgs,lib)'命令。 –

+0

'remove.packages(pkgs,lib)中的錯誤:未找到'pkgs'對象' – Sparhawk

相關問題