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

And*_*irk 0 linux r

我在运行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?

谢谢

安德鲁

Dir*_*tel 5

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

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

.libPaths()
Run Code Online (Sandbox Code Playgroud)

在你的盒子上,你可能会看到下面的可怕目录$HOME作为第一个点.而且,除非你说,否则安装会去的第一个景点,从其他用户隐藏"您的"包.

现在,你可以做两件事:

  1. 显式安装到不同的目录中.请参阅选项install.packages()
  2. 改变库路径.

我通常在工作的机器上选择选项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'}
Run Code Online (Sandbox Code Playgroud)

您会看到它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> 
Run Code Online (Sandbox Code Playgroud)

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