我和我的同事正在用 RStudio 中的 Bookdown 编写一本书。由于我使用 ggplot 创建了很多图形,因此我对其他包(ggplot、ggforce、gganimate...)有很多依赖关系,因此我在本书的过程中添加了 renv 来处理包管理。在全新安装我的 Windows 之后,我现在确实无法再次设置项目,因为从 R 到版本 3.6.3 的更新和使用的软件包。
带有 renv 的项目的初始状态是版本为 3.6.2 的 R,我重新安装了它。打开项目后,我运行renv::restore()
以使用所有包恢复环境。目前只有包 nloptr(版本 1.2.1)有错误,因为它必须从源代码构建包。
Installing minqa [1.2.4] ...
OK (linked cache)
Installing nloptr [1.2.1] ...
FAILED
Error installing package 'nloptr':
==================================
* installing *source* package 'nloptr' ...
** package 'nloptr' successfully unpacked and MD5 sums checked
** using staged installation
**********************************************
WARNING: this package has a configure script
It probably needs manual configuration
**********************************************
** libs
C:/Rtools/mingw_64/bin/g++ -std=gnu++11 -I"C:/PROGRA~1/R/R-36~1.2/include" -DNDEBUG -O2 -Wall -mtune=generic -c dummy.cpp -o dummy.o
C:/Rtools/mingw_64/bin/gcc -I"C:/PROGRA~1/R/R-36~1.2/include" -DNDEBUG -I"/x64/include" -O2 -Wall -std=gnu99 -mtune=generic -c init_nloptr.c -o init_nloptr.o
init_nloptr.c:35:19: fatal error: nlopt.h: No such file or directory
#include "nlopt.h"
^
compilation terminated.
make: *** [C:/PROGRA~1/R/R-36~1.2/etc/x64/Makeconf:208: init_nloptr.o] Error 1
ERROR: compilation failed for package 'nloptr'
* removing 'C:/Users/Ralph/DOCUME~1/ML2/ml2-buch/renv/staging/1/nloptr'
Fehler: install of package 'nloptr' failed
要解决此错误,我通过以下方式手动安装软件包:
packageurl <- "https://cran.r-project.org/bin/windows/contrib/3.7/nloptr_1.2.1.zip"
install.packages(packageurl, repos=NULL, type="binary")
之后可以安装所有软件包,但现在,其中许多都显示警告package 'X' was built under R version 3.6.3
。
如果renv无法恢复原始状态,那么它有什么意义,因为所有包都已被 R 的更新更改?如何正确管理 R 项目?