记一次Microsoft R Open更新R包经历

如题所述

第1个回答  2024-04-03
在探索Microsoft R Open(MRO)4.0.2的世界时,我偶然遭遇了一个小挑战:tibble的旧版本警告。为了解决这个问题,我决定将dplyr和tibble升级到最新的版本3.1.6,这个过程涉及到一些额外的配置。R语言的4.0.0-4.2.0版本带来了不少新特性,但同时也带来了一些编译上的需求,比如需要RTools,其中包含了gcc和make等工具。

遇到的其中一个问题是RTools的路径设置。解决方法是巧妙地利用`.Renviron`和`.Rprofile.site`文件。首先,我们需要检查R的基础安装路径用`R_HOME()`,当前工作目录则通过`getwd()`获取。`.Rprofile`文件是启动时的默认脚本,而`.Renviron`则用于设置环境变量,尤其是对RTools 40版本的特定指向,确保`make`命令的顺利执行。

在`R_HOME/etc`目录下,我添加了`Renviron.site`,并设置了`RTOOLS40_HOME`环境变量,确保在任何R版本中都能找到所需的工具。在安装`ellipsis`时,我注意到了一个版本兼容性问题,它要求lifecycle库至少要有1.0.0以上的版本。MRO采用了微软服务器的snapshot机制进行安装,因此在`Rprofile.site`中,我将默认的镜像源设置为了RevoUtils。

为了保持与CRAN(Comprehensive R Archive Network)的同步,我在`Rprofile.site`中对下载文件的默认方法进行了修改,使用了`curl`以优化下载性能。以下是修改后的代码片段:

```R
r <- getOption("repos")
if (.Platform$OS.type == "unix") {
options(download.file.method = "curl")
}
r["CRAN"] <- "https://cran.revolutionanalytics.com"
options(repos = r)
```

现在,每次启动R,我都能享受到最新的包更新和更流畅的镜像同步。这个过程虽然遇到了一些小困扰,但通过细心的配置和理解,我成功地解决了问题,进一步提升了我的R语言环境的稳定性和效率。
相似回答