【发布时间】:2019-11-16 16:40:19
【问题描述】:
utils::install.packages 似乎完全能够安装缺少的依赖项。但是,如果由于某种原因(例如,在尝试安装 DiagrammeR、Error: package ‘igraph’ was installed by an R version with different internals; it needs to be reinstalled for use with this R version 时)已经安装了一个依赖项,但没有正确的版本,那么原来的 install.packages 调用就会停在那里。然后我必须去手动重新安装每个有问题的依赖项。如何实现自动化?
我在 Linux 上运行 R 3.6.1。
【问题讨论】:
-
这部分是您的“thinko”:您与
install.packages()的“隐含合同”是它可以假设您已安装的软件包是最新的。你也应该运行update.packages(),它会处理这部分。通过了解已安装包的 CRAN 版本,您几乎可以确保要安装的包可以与它们一起使用。 (由于缺少install.packages()无法控制的系统库或其他工具,安装仍可能失败。) -
@DirkEddelbuettel 似乎
update.packages(你的意思是这个意思吗?)升级了每个安装的包,这可能就足够了,但有点过头了。 -
这并不过分。这就是系统的设计和工作方式。我基本上每天都在我的机器上运行
update.packages(),它只更新少数几个包(并行,使用Ncpus选项)。我认为您陷入了一种心理障碍,您希望既 完全稳定且不进行任何更改,但又要完美安装任何附加软件包。但这不是 CRAN 为您提供的服务保证,因此您必须做其他事情:这是一个方形/圆孔问题。 YMMV。 -
@DirkEddelbuettel 一点也不,我只想要执行我要求的安装或更新所需的更改,仅此而已。
-
我听到了。我只是试图解释三遍你的假设对这项任务是无效的,所以你碰壁对我来说并不奇怪。退后一步,想想
install.packages()如果您没有安装其他软件包(处于部分陈旧状态),将为您的新软件包做什么。他们对 CRAN 来说都是新鲜的。
标签: r installation dependencies