R_LIBS_USER路径的争议

时间:2016-06-22 14:09:39

标签: r

当我检查R环境时,我得到了:

> Sys.getenv("R_LIBS_USER")
[1] "~/R/x86_64-pc-linux-gnu-library/3.3"

但当我cd到目录时,似乎根本没有这条路径:

dz33@ccis4240:~/R/x86_64-pc-linux-gnu-library$ ll -a
total 12
drwxr-xr-x  3 dz33 dz33 4096 Jul  2  2015 .
drwxr-xr-x  3 dz33 dz33 4096 Jul 10  2015 ..
drwxr-xr-x 64 dz33 dz33 4096 Mar 30 16:41 3.2

正如您所看到的,只有/3.2目录,但/3.3。有人知道为什么以及如何更改为3.2或设置3.3?看来我的R版本是最新的:

> R.Version()
$platform
[1] "x86_64-pc-linux-gnu"

$arch
[1] "x86_64"

$os
[1] "linux-gnu"

$system
[1] "x86_64, linux-gnu"

$status
[1] ""

$major
[1] "3"

$minor
[1] "3.0"

$year
[1] "2016"

$month
[1] "05"

$day
[1] "03"

$`svn rev`
[1] "70573"

$language
[1] "R"

$version.string
[1] "R version 3.3.0 (2016-05-03)"

$nickname
[1] "Supposedly Educational"

1 个答案:

答案 0 :(得分:6)

R_LIBS_USER变量是可选,如果设置,它将被添加到库路径(由.libPaths()显示)。

我可能属于少数群体,但在我尝试取消 R_LIBS_USER的系统上,以便我得到

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

意味着install.packages() 将使用系统上所有用户都可访问的系统范围的目录 - 这在我们工作的地方是有意义的拥有多用户系统。需要注意的一点是,您希望您的用户成为具有该目录的组写权限的组的成员才能安装(只要您可以信任您的用户)。

这样做也会消除您观察到的版本化目录(即3.2/ vs 3.3/)。

富勒详细信息位于help(Startup)