首先,我知道我的痛苦完全是自己造成的。
在将某些软件包移动到该选项时,我首先使用而不是软件包作者在此处推荐的方式external.packages
从 packrat 中卸载了它们。remove.packages()
packrat::clean()
项目中的代码工作得很好(因为在会话中正确加载了外部包),但从那时起就无法更新库。如果我尝试执行快照,我会收到以下错误
Error: Unable to retrieve package records for the following packages:
- "knitr", "rmarkdown"
我尝试重新安装软件包,但 Packrat 对我大喊大叫
Warning in install.packages :
packages ‘knitr’, ‘rmarkdown’ are in use and will not be installed
因此,当我收到此消息时,我尝试调用正确的函数, clean(c('knitr', 'rmarkdown'), force = TRUE)
但仍然没有出路
Error in find.package(pkgs, lib) :
there are no packages called ‘knitr’, ‘rmarkdown’
我试图检查包是否实际存在于 packrat 库中,它们确实存在!
> .libPaths()
[1] "C:/Users/Admn/Documents/.../cct/packrat/lib/x86_64-w64-mingw32/3.5.1"
[2] "C:/Users/Admn/Documents/.../cct/packrat/lib-ext/x86_64-w64-mingw32/3.5.1"
[3] "C:/Users/Admn/Documents/.../cct/packrat/lib-R/x86_64-w64-mingw32/3.5.1"
> c('knitr', 'rmarkdown') %in% .packages(all.available = TRUE)
[1] TRUE TRUE
> c('knitr', 'rmarkdown') %in%
list.dirs(.libPaths()[2], full.names = FALSE, recursive = FALSE)
[1] TRUE TRUE
我很想用 手动从库目录中拉出这两个文件夹unlink()
,但我怀疑我最终可能会产生更多问题。
如果可以避免,我不想最终重新安装整个 Packrat 库——全部 500MB——因为我可以访问缓慢而昂贵的互联网。有谁知道摆脱这个烂摊子的出路吗?