默认R个人库位置为空

wib*_*ley 11 r

我将我的Ubuntu 16.04机器更新为R 3.4.1.当安装第一个非必需的包(例如,lubridate)时,我收到了以下消息:

你想创建一个个人库'null'来安装包吗?

这发生在RStudio和命令行R.我卸载r-base-core并重新安装r-baser-base-dev通过apt-get,但仍然有问题.

我注意到该/etc/R/目录包含四个在安装过程中暂时存在的短暂文件,但在apt-get install r-base r-base-dev完成时已消失 .我重新安装,以便快速抓取并粘贴这些文件到桌面.重新安装后,我将它们复制到/etc/R/:

~/Desktop/temp$ sudo cp repositories.dpkg-new /etc/R/repositories
~/Desktop/temp$ sudo cp Rprofile.site.dpkg-new /etc/R/Rprofile.site
~/Desktop/temp$ sudo cp ldpaths.dpkg-new /etc/R/ldpaths
~/Desktop/temp$ sudo cp Makeconf.dpkg-new /etc/R/Makeconf
Run Code Online (Sandbox Code Playgroud)

第二步是取消注释下面的第二步,发现于/etc/R/Renviron.显然这是@ dirk-eddelbuettel最近对r-base包装的改变.

# 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'}
Run Code Online (Sandbox Code Playgroud)

我有一个由两部分组成的问题:

  1. 是上面推荐的过程,还是我应该采取不同的做法?(例如,沿着设置R_LIBS并避免"您想要使用个人库吗?".)
  2. 这台机器的未来R升级可能需要这两个步骤吗?

Fab*_*bio 6

你很亲密 问题在于"注释掉"这些行,而不检查兼容性.如果您尝试在REPL中手动安装库,则会出现同样的问题,例如:

install.packages("survival")
Run Code Online (Sandbox Code Playgroud)

区别在于您得到"NA"错误而不是"null".

如果您想要最小的麻烦,未来R升级的解决方案:

  • 将/ etc/R/Renviron恢复到软件包默认值,以便下次升级时不会要求输入(或只是覆盖)

  • 在主目录中添加Renviron,例如$HOME/.Renviron,包含以下内容:

R_LIBS_USER="${HOME}/R/${R_PLATFORM}-library/3.4.1/"

就个人而言,每次R升级我都会用新版本重新安装所有库.因此,我将3.4.1使用3.4.2或修改我的新版本,然后重新安装库.

如果您不想重新安装库,可以尝试完全删除版本子目录,例如:

R_LIBS_USER="${HOME}/R/${R_PLATFORM}-library/

这样你的旧图书馆就会立刻被R.看到

注意:遗憾的是,我无法找到将R版本放入Renviron的方法,但这可以使用.Rprofile来实现(因为它可以包含R代码).