【问题标题】:R .libPaths() difference between RStudio and command-line RRStudio 和命令行 R 之间的 R .libPaths() 区别
【发布时间】:2011-10-31 01:09:54
【问题描述】:

当我从命令行运行 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 定制吗? (为什么?)提前致谢。

【问题讨论】:

  • 这些是由具有相同权限的同一用户安装的吗?
  • RStudio 作为 Debian 软件包安装,但它使每个用户都以 Linux 用户身份进行身份验证并在其环境中运行。在我的情况下,登录用户与命令行 R 用户相同(注意路径中的 /home/yang)。
  • 您是否检查过这些路径中的任何一个是否是相互的符号链接?
  • 是的,它们之间不是符号链接;他们有不同的内容。我必须在每个环境中分别重新安装所有扩展。

标签: r rstudio


【解决方案1】:

来源直接回答:

http://support.rstudio.org/help/discussions/questions/204-r-libpaths-difference-between-rstudio-and-command-line-r

你好,

是的,我们有一个自定义 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

(注意我相信这是重现目录的正确语法 显示在上面的输出中,但您肯定要仔细检查 那个)

希望可以解决问题,并且您可以将事情配置为 你想要。让我们知道您是否有其他问题,或者如果没有 按照描述工作。

J.J.

【讨论】:

    【解决方案2】:

    一个快速的谷歌搜索让我来到这里:

    http://support.rstudio.org/help/discussions/problems/868-how-to-configure-libpaths

    所以看起来 RStudio 使用自己的库,在 /etc/rstudio/rsession.conf 中设置。为什么?谁知道呢。

    【讨论】:

    • JJ Allaire 的回答 on Rstudio's support site 阐明了原因和解决方法。
    • 不幸的是,该链接现在显示它已“关闭”。嘘,嘶嘶声。另一个以链接为主的答案变得价值最小。
    猜你喜欢
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 2019-07-19
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    相关资源
    最近更新 更多