R 3.4.1“单个蜡烛”个人图书馆path错误:无法创build“不适用”

我刚刚在我的Linux Mint 18.1肉桂机上更新到R(3.4.1“Single Candle”),我试图安装一个软件包。 R返回了以下内容:

> install.packages('ggplot2') Installing package into '/usr/local/lib/R/site-library' (as 'lib' is unspecified) Warning in install.packages("ggplot2") : 'lib = "/usr/local/lib/R/site-library"' is not writable Would you like to use a personal library instead? (y/n) y Would you like to create a personal library NA to install packages into? (y/n) y Error in install.packages("ggplot2") : unable to create 'NA' 

我以前遇到过'lib not writable'输出,但通常它提供了这样一个解决scheme:

 Would you like to create a personal library ~/R/x86_64-pc-linux-gnu-library/3.4 to install packages into? (y/n) y 

任何想法为什么个人图书馆build议NA? 有没有办法手动覆盖这个?

2017年7月8日之后,这将解决所有问题

 sudo apt-get update 

我不知道是什么原因导致这个问题(我也在Ubuntu 16.04上遇到这个问题),但是这里有一个快速的解决方法:

 .libPaths(c("/home/your_username/R/x86_64-pc-linux-gnu-library/3.4/", .libPaths())) 

当然,你可以replace"/home/your_username/..."来存放你的个人图书馆。

这个解决scheme使install.packages()library()工作。 等待一个完整的解决scheme!

编辑:我应该注意到,这个解决scheme不是持久的。 也就是说,在重新启动R之后它不会持续。您可以通过将上述相同的代码行添加到/home/your_username/.Rprofile文件来解决此问题。

查看@Dirk评论( https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866768 )中的详细信息,这是一个计划的行为,以便为系统的所有用户安装一次软件包。

解决scheme是为所有用户制作/usr/local/lib/R/可写,而不是重新设置为每个用户提供个人包库的旧行为。

打开一个terminal,并:

  • 导航到/usr/local/lib/ cd /usr/local/lib/
  • 更改所有者:组,以便所有用户都可以写入该文件夹。 我碰巧在我的计算机上有一个所有用户都是的成员,所以我使用了这个function,但请参阅https://askubuntu.com/questions/66718/how-to-manage-users-and-groups寻求帮助。如有必要设立一个小组;
  • 要更改所有权,请使用sudo chown owner:group -RR/owner是任何用户,这并不重要。 group是关键之一; 确保任何人想在你的系统上使用R是这个组的成员。 -R是recursion的(即,将其执行到R/所有文件和文件夹)。
  • 如果您需要更改组权限,请使用chmod -R 775 R/ 。 这为所有者和组提供读取,写入和执行权限,并赋予所有其他人读取和执行权限。

现在重新启动R,你应该能够安装软件包到你的共享位置。

我的解决scheme如下:

在文件/usr/lib/R/etc/Renviron有一个configurationR.

在第43-45行中有:

 # edd Jun 2017 Comment-out R_LIBS_USER #R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'} ##R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.4/library'} 

我已经取消注释R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'} ,重新启动RStudio,现在可以运行。

编辑:看看评论,这似乎是一个计划的行为。 这是另一个解决scheme。

在运行某些Bioconductor软件包的安装过程时,也发生了同样的情况。

然后我意识到我也可以在bash命令行上写下这个(或类似的):

export R_LIBS_USER=$HOME/R/x86_64-pc-linux-gnu-library/3.4 && R

要么

export R_LIBS_USER=$HOME/R/x86_64-pc-linux-gnu-library/3.4 && rstudio

然后在R中运行upgrade.packages() (或install.packages()biocLite() )。

这样的改变是暂时的,你不必更新任何configuration文件。

如果随后在.Renviron or .Rprofile中的命令在R启动过程中将R_USER_LIBS设置为不同的位置(检查您的configuration),则此shell命令无用。

坚持在$ HOME / R / x86_64-pc-linux-gnu-library / 3.X可能是可取的,如果你已经有很多的软件包在这个位置,你希望他们升级/安装在那里。 我有很多Bioconductor软件包,我不希望他们再次下载,其中一些软件包在使用时下载了大量的“组学”数据集。 也许/ usr / local / lib / R所在的分区的磁盘空间太less,或者在缓慢的驱动器上。

可能这是R 3.4.1的一个bug,而我的解决scheme是改变行号

 R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'} 

/etc/R/Renviron文件中

 R_LIBS_SITE=${R_LIBS_SITE-'~/R/x86_64-pc-linux-gnu-library/3.4.1:/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'}