まず第一に、私は自分の痛みが完全に自傷行為であることを認識しています。
特定のパッケージをexternal.packages
オプションに移動する際に、パッケージ作成者がここで推奨するのremove.packages()
ではなく、最初にそれらを packrat からアンインストールしました。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
ライブラリ ディレクトリから 2 つのフォルダを手動でヤンクしたいと真剣に考えていますが、unlink()
最終的にはさらに問題が発生する可能性があると思います。
避けられるのであれば、非常に遅くて高価なインターネットにアクセスできることを考えると、packrat ライブラリ全体 (500MB 全部) を再インストールすることにはなりたくありません。この混乱から抜け出す方法を知っている人はいますか?