Мы с коллегами работаем над книгой с Bookdown в RStudio. Поскольку я создаю много графики с помощью ggplot и, следовательно, у меня много зависимостей от других пакетов (ggplot, ggforce, gganimate, ...), я добавил в книгу renv, чтобы позаботиться об управлении пакетами. После чистой установки моего Windows у меня возникли проблемы с повторной настройкой проекта, потому что были обновления от R до версии 3.6.3 и использованные пакеты.
Начальное состояние проекта с renv было R с версией 3.6.2, которую я переустановил. После открытия проекта я запускаю 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?