如何使用户';s R库可供其他用户使用(Linux)

如何使用户';s R库可供其他用户使用(Linux),r,linux,R,Linux,我在运行LinuxMint17.1Rebecca(64位)的PC上安装了R3.3。大多数情况下,我是从我的普通用户帐户“andrew”使用它的,但有时我不得不在只有通过VPN才能使用的机密数据文件上使用它,我必须以root用户身份启动R才能工作 这工作正常,但直到今天,我试图在root上使用R中的包ggplot2,而library(ggplot2)命令告诉我它没有安装,即使它是为这台电脑上的andrew帐户安装的 因此,我尝试从根帐户安装ggplot2,但由于其中一个依赖项而失败。我可以尝试排除

我在运行LinuxMint17.1Rebecca(64位)的PC上安装了R3.3。大多数情况下,我是从我的普通用户帐户“andrew”使用它的,但有时我不得不在只有通过VPN才能使用的机密数据文件上使用它,我必须以root用户身份启动R才能工作

这工作正常,但直到今天,我试图在root上使用R中的包ggplot2,而library(ggplot2)命令告诉我它没有安装,即使它是为这台电脑上的andrew帐户安装的

因此,我尝试从根帐户安装ggplot2,但由于其中一个依赖项而失败。我可以尝试排除故障,但上次我这么做是一个漫长而痛苦的过程。我应该能够使用已经为“andrew”安装的版本

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

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

它被列为可供andrew使用,但不可供root使用

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

有谁能建议如何使该库可供root用户使用吗

多谢各位


Andrew

我非常坚信这一点,甚至尝试为Debian和Ubuntu软件包进行设置(尽管目前尚未激活)

关键是你对库路径的价值

.libPaths()
在您的框中,您可能会看到
$HOME
下面的可怕目录作为第一个位置。除非您另有说明,否则安装将转到第一个位置,向其他用户隐藏“您的”软件包

现在,您可以做两件事:

  • 显式安装到其他目录中。请参阅
    install.packages()
  • 更改库路径 我通常在工作的机器上选择选项2。下面是我们在
    ${R_HOME}/etc/Renviron
    中看到的内容(仍然显示十三年前我添加到R包中的注释):

    您可以看到,
    R\u LIBS\u USER
    被注释掉,并且
    R\u LIBS\u SITE
    默认为
    /usr/local
    下面的标准位置

    然后:


    软件包进入所有用户都可见的目录中(我们使该目录对于适当的用户是可组写的)。

    这一点我非常相信,甚至尝试为Debian和Ubuntu软件包设置(尽管它目前不处于活动状态)

    关键是你对库路径的价值

    .libPaths()
    
    在您的框中,您可能会看到
    $HOME
    下面的可怕目录作为第一个位置。除非您另有说明,否则安装将转到第一个位置,向其他用户隐藏“您的”软件包

    现在,您可以做两件事:

  • 显式安装到其他目录中。请参阅
    install.packages()
  • 更改库路径 我通常在工作的机器上选择选项2。下面是我们在
    ${R_HOME}/etc/Renviron
    中看到的内容(仍然显示十三年前我添加到R包中的注释):

    您可以看到,
    R\u LIBS\u USER
    被注释掉,并且
    R\u LIBS\u SITE
    默认为
    /usr/local
    下面的标准位置

    然后:


    软件包进入所有用户都可见的目录(我们将目录设置为可供适当用户组写)。

    谢谢你的回答,德克。看起来上面的第一个代码框是一个配置文件,您对它做了一些更改。Linux下该文件的名称和可能的位置是什么?我的错。在Debian/Ubuntu上,
    /etc/R/Renviron
    ;正常点
    ${R_HOME}/etc/Renviron
    。请参阅
    帮助(启动)
    ,了解设置此选项的所有其他选项,但根据您的问题,系统范围是最好的。谢谢您,我做了此更改,成功地更改了安装目录,但也使~库不可见。因此,为了能够访问以前安装到~,我在R_LIBS_站点行中添加了~,方法是在final'标记之前插入:/home/andrew/R/x86_64-pc-linux-gnu-library/3.3(因此可以看到,但不应在那里安装新的安装)。这似乎奏效了。所有库现在对root和andrew都可见。然后,我测试了一个软件包安装,果然,它安装在“/usr/local/lib/R/site library”中,这太棒了。您认为添加到R_LIBS_站点是一件可以做的事情吗?即它不会产生其他问题?请定义“问题”。我是这个软件包的Debian(因此也是Ubuntu)维护者,我详细介绍的是为相当多的人工作的,否则我会听说的。谢谢你的回答,德克。看起来上面的第一个代码框是一个配置文件,您对它做了一些更改。Linux下该文件的名称和可能的位置是什么?我的错。在Debian/Ubuntu上,
    /etc/R/Renviron
    ;正常点
    ${R_HOME}/etc/Renviron
    。请参阅
    帮助(启动)
    ,了解设置此选项的所有其他选项,但根据您的问题,系统范围是最好的。谢谢您,我做了此更改,成功地更改了安装目录,但也使~库不可见。因此,为了能够访问以前安装到~,我在R_LIBS_站点行中添加了~,方法是在final'标记之前插入:/home/andrew/R/x86_64-pc-linux-gnu-library/3.3(因此可以看到,但不应在那里安装新的安装)。这似乎奏效了。所有库现在对root和a都可见
    R> .libPaths()
    [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"       "/usr/lib/R/library"           
    R>