R 3.4.1 "Single Candle" Personal Library Path Error: unable to create ‘NA’
R 3.4.1 "Single Candle" Personal Library Path Error: unable to create ‘NA’
我刚刚在我的 Linux Mint 18.1 Cinnamon 机器上更新到 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' 输出,但通常它会提供如下解决方案:
Would you like to create a personal library
~/R/x86_64-pc-linux-gnu-library/3.4
to install packages into? (y/n) y
知道为什么个人图书馆建议不适用吗?有没有办法手动覆盖它?
我不知道是什么导致了这个问题(我也在 Ubuntu 16.04 上遇到过),但这里有一个快速的解决方法:
.libPaths(c("/home/your_username/R/x86_64-pc-linux-gnu-library/3.4/", .libPaths()))
当然,您可以将 "/home/your_username/..."
替换为任何其他目录(将存储您的个人图书馆)。
此解决方案使 install.packages()
和 library()
工作。等待完整修复!
编辑:我应该注意到这个解决方案不是持久的。也就是说,它不会在重新启动 R 后持续。您可以通过将上述相同的代码行添加到 /home/your_username/.Rprofile
文件来解决此问题。
可能这是 R 3.4.1 的一个错误,我的解决方案是更改
的行
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'}
我在 运行 一些 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
然后运行upgrade.packages()
(或install.packages()
,或biocLite()
)在R.
这样更改是临时的,您不必更新任何配置文件。
如果随后 .Renvironor
.Rprofile` 中的命令在 R 启动期间将 R_USER_LIBS 设置为不同的位置(-检查您的配置),则此 shell 命令将无用。
坚持使用 $HOME/R/x86_64-pc-linux-gnu-library/3.X 可能是可取的
如果您在这个位置已经有很多包裹,您希望它们 upgraded/installed 在那里。
我那里有很多 Bioconductor 包,我不想让它们再次下载,其中一些包在使用时会下载巨大的 "Omics" 数据集。
可能 /usr/local/lib/R 所在的分区磁盘太小 space 或位于较慢的驱动器上。
查看@Dirk 的评论 (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866768) 中的详细信息,这是一个计划中的行为,以便为系统的所有用户安装一次包。
解决方案是让 /usr/local/lib/R/
对所有用户都可写,而不是恢复为每个用户提供个人包库的旧行为。
打开终端并:
- 使用
cd /usr/local/lib/
导航至 /usr/local/lib/
- 更改 owner:group 以便所有用户都可以写入该文件夹。我的计算机上碰巧有一个所有用户都是其成员的组,所以我使用了它,但如有必要,请参阅 https://askubuntu.com/questions/66718/how-to-manage-users-and-groups 以获取有关设置组的帮助
- 要更改所有权,请使用
sudo chown owner:group -R R/
。 owner
是任何用户,这并不重要。 group
是关键;确保任何想在你的系统上使用 R 的人都是这个组的成员。 -R
是递归的(即对 R/
中的所有文件和文件夹执行此操作)。
- 如果您需要更改群组权限,请使用
chmod -R 775 R/
。这会授予所有者和组读、写和执行权限,并授予所有其他人读和执行权限。
现在重新启动 R,您应该能够将包安装到您的共享位置。
如下:
文件/usr/lib/R/etc/Renviron
中有R的配置
第 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,现在可以使用了。
编辑: 查看评论,这似乎是一种计划好的行为。 是另一种解决方案。
2017 年 7 月 8 日之后,这将解决所有问题
sudo apt-get update
我刚刚在我的 Linux Mint 18.1 Cinnamon 机器上更新到 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' 输出,但通常它会提供如下解决方案:
Would you like to create a personal library
~/R/x86_64-pc-linux-gnu-library/3.4
to install packages into? (y/n) y
知道为什么个人图书馆建议不适用吗?有没有办法手动覆盖它?
我不知道是什么导致了这个问题(我也在 Ubuntu 16.04 上遇到过),但这里有一个快速的解决方法:
.libPaths(c("/home/your_username/R/x86_64-pc-linux-gnu-library/3.4/", .libPaths()))
当然,您可以将 "/home/your_username/..."
替换为任何其他目录(将存储您的个人图书馆)。
此解决方案使 install.packages()
和 library()
工作。等待完整修复!
编辑:我应该注意到这个解决方案不是持久的。也就是说,它不会在重新启动 R 后持续。您可以通过将上述相同的代码行添加到 /home/your_username/.Rprofile
文件来解决此问题。
可能这是 R 3.4.1 的一个错误,我的解决方案是更改
的行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'}
我在 运行 一些 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
然后运行upgrade.packages()
(或install.packages()
,或biocLite()
)在R.
这样更改是临时的,您不必更新任何配置文件。
如果随后 .Renvironor
.Rprofile` 中的命令在 R 启动期间将 R_USER_LIBS 设置为不同的位置(-检查您的配置),则此 shell 命令将无用。
坚持使用 $HOME/R/x86_64-pc-linux-gnu-library/3.X 可能是可取的 如果您在这个位置已经有很多包裹,您希望它们 upgraded/installed 在那里。 我那里有很多 Bioconductor 包,我不想让它们再次下载,其中一些包在使用时会下载巨大的 "Omics" 数据集。 可能 /usr/local/lib/R 所在的分区磁盘太小 space 或位于较慢的驱动器上。
查看@Dirk 的评论 (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866768) 中的详细信息,这是一个计划中的行为,以便为系统的所有用户安装一次包。
解决方案是让 /usr/local/lib/R/
对所有用户都可写,而不是恢复为每个用户提供个人包库的旧行为。
打开终端并:
- 使用
cd /usr/local/lib/
导航至 - 更改 owner:group 以便所有用户都可以写入该文件夹。我的计算机上碰巧有一个所有用户都是其成员的组,所以我使用了它,但如有必要,请参阅 https://askubuntu.com/questions/66718/how-to-manage-users-and-groups 以获取有关设置组的帮助
- 要更改所有权,请使用
sudo chown owner:group -R R/
。owner
是任何用户,这并不重要。group
是关键;确保任何想在你的系统上使用 R 的人都是这个组的成员。-R
是递归的(即对R/
中的所有文件和文件夹执行此操作)。 - 如果您需要更改群组权限,请使用
chmod -R 775 R/
。这会授予所有者和组读、写和执行权限,并授予所有其他人读和执行权限。
/usr/local/lib/
现在重新启动 R,您应该能够将包安装到您的共享位置。
文件/usr/lib/R/etc/Renviron
中有R的配置
第 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,现在可以使用了。
编辑: 查看评论,这似乎是一种计划好的行为。
2017 年 7 月 8 日之后,这将解决所有问题
sudo apt-get update