所以我试图使用检查点包(日期为 2020 年 3 月 1 日)安装 Rcpp。
我的大多数包都很好,但是 Rcpp 专门创建了很多临时目录,然后将其删除,例如:
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 个字符可用于所有 Rcpp 临时对象。
我使用以下代码进行了测试:
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 限制?
现在,我可能会将目录向上移动几级,但如果我能深入了解我的猜测是否真的正确,或者我是否遗漏了什么,我将不胜感激!