如何设置R_LIBS_SITE或如何分享包站点?
How to set R_LIBS_SITE or how to share package site?
这是 this question 的通用版本。如何设置R_LIBS_SITE
?我无法在 CentOS 7.2 和 openSUSE 42.1 上使用最新的 R 3.3.1 获得正确的值。
在 CentOS 7.2 (Linux x86_64) 上使用来自 EPEL 的 R 我得到:
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
...
Platform: x86_64-redhat-linux-gnu (64-bit)
...
> .libPaths()
[1] "/usr/lib64/R/library" "/usr/share/R/library"
> .Library
[1] "/usr/lib64/R/library"
> .Library.site
[1] "/usr/lib64/R/library" "/usr/share/R/library"
> R.home(component = "home")
[1] "/usr/lib64/R"
但是,相应的 Renviron 包括以下内容:
$ grep R_LIBS_SITE /usr/lib64/R/etc/Renviron
R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/local/lib/R/library:/usr/lib64/R/library:/usr/share/R/library'}
显然,当我启动 R 时,此设置未正确应用。但是,
应用同一文件中 R_LIBS_USER 中的更改。另外,R_LIBS_SITE
没有被完全忽略,因为设置为
R_LIBS_SITE='/usr/local/lib/R/site-library'
产生
> .Library.site
character(0)
我看不出 R_LIBS_SITE
可以在其他地方被覆盖的地方。我得到
当我用
启动它时,R 中的行为相同
R --no-environ --no-site-file --no-init-file
我可以用 openSUSE 重现类似的行为。
或者是否有另一种推荐的方法来设置所有用户共享的包站点?
问题的一个可能解释是某些目录不存在。不存在的目录会自动从列表中删除。所以,如果你设置
R_LIBS_SITE='/usr/local/lib/R/site-library'
并且该目录不存在,.Library.site
将是一个空字符串(如您的示例所示)。根据您的示例的输出,如果目录 /usr/local/lib/R/site-library
和 /usr/local/lib/R/library
不存在,它们将从您的 Renviron
文件的 R_LIBS_SITE
中给出的列表中静默删除(再次像在你的输出中)。
这是 this question 的通用版本。如何设置R_LIBS_SITE
?我无法在 CentOS 7.2 和 openSUSE 42.1 上使用最新的 R 3.3.1 获得正确的值。
在 CentOS 7.2 (Linux x86_64) 上使用来自 EPEL 的 R 我得到:
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
...
Platform: x86_64-redhat-linux-gnu (64-bit)
...
> .libPaths()
[1] "/usr/lib64/R/library" "/usr/share/R/library"
> .Library
[1] "/usr/lib64/R/library"
> .Library.site
[1] "/usr/lib64/R/library" "/usr/share/R/library"
> R.home(component = "home")
[1] "/usr/lib64/R"
但是,相应的 Renviron 包括以下内容:
$ grep R_LIBS_SITE /usr/lib64/R/etc/Renviron
R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/local/lib/R/library:/usr/lib64/R/library:/usr/share/R/library'}
显然,当我启动 R 时,此设置未正确应用。但是,
应用同一文件中 R_LIBS_USER 中的更改。另外,R_LIBS_SITE
没有被完全忽略,因为设置为
R_LIBS_SITE='/usr/local/lib/R/site-library'
产生
> .Library.site
character(0)
我看不出 R_LIBS_SITE
可以在其他地方被覆盖的地方。我得到
当我用
R --no-environ --no-site-file --no-init-file
我可以用 openSUSE 重现类似的行为。
或者是否有另一种推荐的方法来设置所有用户共享的包站点?
问题的一个可能解释是某些目录不存在。不存在的目录会自动从列表中删除。所以,如果你设置
R_LIBS_SITE='/usr/local/lib/R/site-library'
并且该目录不存在,.Library.site
将是一个空字符串(如您的示例所示)。根据您的示例的输出,如果目录 /usr/local/lib/R/site-library
和 /usr/local/lib/R/library
不存在,它们将从您的 Renviron
文件的 R_LIBS_SITE
中给出的列表中静默删除(再次像在你的输出中)。