首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一次更新多个包时解决“无法删除预先安装的包”错误

在一次更新多个包时解决“无法删除预先安装的包”错误
EN

Stack Overflow用户
提问于 2018-02-13 18:17:44
回答 1查看 7.6K关注 0票数 10

这是一个反复出现的问题。

我已经多次遇到过这个问题。最烦人的是当它发生在一堆包中时;例如,我做了一些类似的事情

代码语言:javascript
复制
update.packages(ask = FALSE)

得到一些这样的错误。但是,这个错误是误导的,因为R倾向于实际上删除了旧的包版本的--但是没有安装新的版本。一旦发生这种情况,您就无法用update.packages修复它;您必须从头开始重新安装它。

这个问题最令人沮丧的方面是,它经常发生在安装依赖项时,例如,我可能成功地更新dplyr,但在此过程中Rcpp被删除。现在我无法加载dplyr,因为Rcpp丢失了,所以我需要重新安装Rcpp

我当前的解决方法(当卸载包的数量很大时)是关闭所有的R会话,使用基本的RTVS打开一个新的会话(即不是RStudio或RTVS),然后执行以下操作

代码语言:javascript
复制
lapply(dir(.libPaths()), install.packages)

恢复了我的整个图书馆。这太过分了。

是否有更好的方法来检查.libPaths() 中哪些文件夹实际包含包,以便我只重新安装丢失的包?

或者:是否有更好的方法来检查丢失的包是否有缺陷?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-13 19:33:30

一种策略是做

代码语言:javascript
复制
setdiff(dir(.libPaths()), .packages(all = TRUE))

以获取库中似乎不实际包含包的目录列表。现在,我要重新安装的软件包列表要小得多。

我不知道这是不是万无一失,但它比重新安装我的整个库好。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48773148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档