Итак, я пытался установить R cpp, используя пакет контрольных точек (с датой 1 марта 2020 г.).
Большинство моих пакетов были в порядке, но R cpp специально делает много временных каталогов, которые затем удаляет, например:
00LOCK-Rcpp/00new/Rcpp/include/Rcpp/generated/InternalFunctionWithStdFunction_call.h
Это 84 символа длиной, и я верю, что некоторые длиннее.
Checkpoint также создает множество каталогов, например, с пользовательской библиотекой:
"custom_library/.checkpoint/2020-03-01/lib/x86_64-w64-mingw32/3.6.0/"
Это 67 символов, из которых 52 необходимы только при управлении несколькими датами или версиями контрольных точек.
Это означает, что для пути к файлу, например:
"C:/Users/USER/OneDrive - COMPANY/Documents/LargeDirectory/SubDirectory1/SubDirectory2/custom_library/.checkpoint/2020-03-01/lib/x86_64-w64-mingw32/3.6.0/Rcpp"
Если предположить, что даже временные файлы не могут превышать 255 символов, то у меня определенно осталось <60 символов, доступных для всех R cpp временных предметов. </p>
Я тестировал со следующим кодом:
setwd("C:/Users/USERNAME/OneDrive - COMPANY/Documents/LargeDirectory/SubDirectory1/SubDirectory2/")
dir.create("custom_library)
checkpoint(as.Date("2020-03-01"),
checkpointLocation = paste0(
"SubDirectory2","/custom_library")
)
y
install.packages("Rcpp")
Сбой из-за многочисленных «файлов или каталогов не найдено», которые, как я считаю, на самом деле не работают, потому что 00LOCK-Rcpp / 00new / Rcpp / include / Rcpp / не может быть создан, чтобы затем распаковать все файлы .h к нему. Мне было любопытно, поэтому я запустил следующее:
setwd("~") # up to Documents
dir.create("Rcpptest")
.libPaths("Rcpptest")
install.packages("Rcpp")
И все установилось нормально.
Любые идеи о том, как сделать контрольную точку, либо не создавать столько вложенных каталогов, либо игнорировать ограничение file_path 255 до тех пор, пока не будет установлен весь пакет?
Пока что я, скорее всего, переместу каталог на несколько уровней, но любая оценка того, верна ли моя догадка или нет, была бы признательна!