如何使用户的R库可供其他用户使用(Linux)

时间:2016-11-16 00:39:05

标签: r linux

我在运行Linux Mint 17.1 Rebecca(64位)的PC上安装了R 3.3。大多数情况下,我使用普通用户帐户' andrew',但有时我必须在仅通过VPN提供的机密数据文件上使用它,我必须以root身份启动R才能实现工作

这样可以正常工作,除非直到今天我尝试在root上使用来自R的软件包ggplot2并且库(ggplot2)命令告诉我它没有安装,即使它是在这台PC上为安德鲁帐户安装的。

所以我尝试从root帐户安装ggp​​lot2,但是其中一个依赖项失败了。我可以尝试排除故障,但上次我这样做是一个漫长而痛苦的过程。我应该能够使用已经为' andrew'。

安装的版本

在root和andrew上执行命令库(),我看到ggplot2安装在库中

/home/andrew/R/x86_64-pc-linux-gnu-library/3.3

列为可用于安德鲁但不适用于root。

我想做一些使该库也可用于root的操作。当我搜索有关这方面的建议时,他们建议更改主目录中的.Renviron或.Rprofile文件,我相信在此安装下是/ root。但是,该目录下的任何位置都不存在该名称的文件。它们也不存在于我在VPN上使用的工作目录中。

有人可以建议如何让库可供root使用吗?

谢谢

安德鲁

1 个答案:

答案 0 :(得分:5)

这是我非常坚信的东西,甚至试图设置Debian和Ubuntu软件包(尽管它目前还没有激活)。

关键是你的库路径的价值,即做

.libPaths()
在你的盒子上

,你可能会看到$HOME下面的可怕目录作为第一个点。并且除非你说否则安装将转到第一个位置,隐藏其他用户的“你的”包。

现在,你可以做两件事:

  1. 明确安装到其他目​​录中。请参阅install.packages()
  2. 的选项
  3. 更改库路径。
  4. 我通常在工作的机器上选择选项2。以下是${R_HOME}/etc/Renviron中的内容(仍然显示我在十三年(!!)年前添加到R包中的评论):

    #R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.3'}
    #R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.3/library'}
    
    # edd Apr 2003  Allow local install in /usr/local, also add a directory for
    #               Debian packaged CRAN packages, and finally the default dir 
    # edd Jul 2007  Now use R_LIBS_SITE, not R_LIBS
    R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'}
    

    您看到R_LIBS_USER已注释掉,R_LIBS_SITE默认为/usr/local下方的标准位置。

    然后:

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

    和包进入所有用户可见的目录(我们使该目录可以为适当的用户进行组写)。