![](/img/trans.png)
[英]rstudio different library path to command-line R (`$R_LIBS_USER`)
[英]R .libPaths() difference between RStudio and command-line R
當我從命令行運行R時:
> library(ggplot2)
...
> path.package('ggplot2')
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13/ggplot2"
> .libPaths()
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13"
[2] "/usr/local/lib/R/site-library"
[3] "/usr/lib/R/site-library"
[4] "/usr/lib/R/library"
> Sys.getenv('R_LIBS_USER')
[1] "~/R/x86_64-pc-linux-gnu-library/2.13"
(注意:當我從我的shell中檢查時,該環境變量實際上不存在。)
但是從同一個盒子上運行的RStudio Server,以及以同一用戶身份登錄后:
> path.package('ggplot2')
[1] "/home/yang/R/library/ggplot2"
> .libPaths()
[1] "/home/yang/R/library" "/usr/local/lib/R/site-library"
[3] "/usr/lib/R/site-library" "/usr/lib/R/library"
[5] "/usr/lib/rstudio-server/R/library"
> Sys.getenv('R_LIBS_USER')
[1] "/home/yang/R/library"
你能解釋為什么這些在默認情況下不同嗎? 這是RStudio定制嗎? (為什么?)先謝謝。
來源直接回答:
嗨,您好,
是的,我們有一個自定義的R_LIBS_USER設置,旨在使服務器升級到新版本的R更容易,而不需要每個用戶重命名他們的庫目錄和/或重新構建他們的包。 這樣管理員就可以進行升級而不必擔心他們會破壞用戶的工作環境(意識到這也可以通過編寫為每個用戶執行必要的重命名/重建的升級腳本來實現)。
完全同意在所有情況下都不一定是這樣。 以下是您可以采取的措施:
Rtudio服務器R_LIBS_USER由/etc/rstudio/rsession.conf中的以下設置控制:
r-libs-user=~/R/library
此變量支持與R_LIBS_USER相同的通配符(如此處所述: http ://stat.ethz.ch/R-manual/R-patched/library/base/html/libPaths.html),因此您可以將此更改為以下內容讓RStudio表現得像控制台R:
r-libs-user=~/R/%p-library/%v
(注意我相信這是重現上面輸出中顯示的目錄的正確語法,但你肯定要仔細檢查一下)
希望能夠解決問題,並且可以根據需要配置內容。 如果您有其他問題或者如果這不起作用,請告訴我們。
JJ
一個快速的谷歌搜索讓我來到這里:
http://support.rstudio.org/help/discussions/problems/868-how-to-configure-libpaths
所以看起來RStudio使用自己的libs,在/etc/rstudio/rsession.conf中設置。 為什么? 誰知道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.