我将我的Ubuntu 16.04机器更新为R 3.4.1.当安装第一个非必需的包(例如,lubridate)时,我收到了以下消息:
你想创建一个个人库'null'来安装包吗?
这发生在RStudio和命令行R.我卸载r-base-core
并重新安装r-base
并r-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)
我有一个由两部分组成的问题:
你很亲密 问题在于"注释掉"这些行,而不检查兼容性.如果您尝试在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代码).
归档时间: |
|
查看次数: |
1548 次 |
最近记录: |