web-dev-qa-db-ja.com

複数のパッケージを一度に更新するときの「パッケージの以前のインストールを削除できません」エラーに対処

これは、繰り返し発生する問題です。

私はこの問題に何度も遭遇しました。最も厄介なのは、多数のパッケージで発生する場合です。例えば私は次のようなことをします

_update.packages(ask = FALSE)
_

これらのエラーの数を取得します。ただし、Rは古いパッケージバージョンを実際に削除する傾向があるため、エラーは誤解を招く可能性がありますが、新しいバージョンはインストールされません。これが発生すると、_update.packages_で修正することはできません。最初から再インストールする必要があります。

この問題の最も苛立たしい側面は、dependenciesをインストールするときによく発生することです。 dplyrは正常に更新された可能性がありますが、その過程でRcppは削除されます。 dplyrがないため、Rcppを読み込めません。Rcppを再インストールする必要があります。

私の現在の回避策(アンインストールされたパッケージの数が多い場合)は、すべてのRセッションを閉じ、ベースのR GUI(つまり、RStudioまたはRTVSではない)で新しいセッションを開いて、

_lapply(dir(.libPaths()), install.packages)
_

ライブラリ全体を再インストールします。これはやりすぎです。

.libPaths()内のどのフォルダーに実際にパッケージが含まれているかを確認して、不足しているパッケージのみを再インストールするより良い方法はありますか?

別の方法:不足しているパッケージ依存関係をチェックするためのより良い方法はありますか?

8
mikeck

1つの戦略は、

setdiff(dir(.libPaths()), .packages(all = TRUE))

実際にはパッケージが含まれていないように見えるライブラリ内のディレクトリのリストを取得する。これで、再インストールするパッケージのリストがはるかに少なくなりました。

間違いがないかどうかはわかりませんが、ライブラリ全体を再インストールするよりはましです。

7
mikeck