【问题标题】:Package unavailable in package build after R update using packrat使用 packrat 更新 R 后,包构建中的包不可用
【发布时间】:2015-05-15 21:05:10
【问题描述】:

我最近更新到 R 3.1.3,我正在使用 RStudio 和 packrat 构建一个包。我正在尝试使用 RStudio 内置的“构建和重新加载”工具重新构建我的包,但它不起作用。我不断收到以下错误:

Updating standaRd documentation
Loading standaRd
Error in (function (dep_name, dep_ver = NA, dep_compare = NA)  : 
  Dependency package ggplot2 not available.
Calls: suppressPackageStartupMessages ... <Anonymous> -> load_all -> load_depends -> mapply -> <Anonymous>
Execution halted

Exited with status 1.

问题是,我在所有地方都安装了ggplot2,包括我的本地库和我的 R 3.1.2 和 R 3.1.3 项目的 Packrat 库。我已经尝试加载它们无济于事。

另外,使用 devtools::build()devtools::document() 都可以,所以我假设这是一个 RStudio 问题?

注意:我使用的是 RStudio 版本 0.99.235。

编辑:我也看不到我的包的任何文档,而且它似乎不在我的 packrat 库中。

第二次编辑:我已经卸载了 R 3.1.3 并恢复到 R 3.1.2,但我仍然遇到同样的问题。

第三次编辑:这些是我的依赖项:

Depends:
    R (>= 3.1.2),
    ggplot2 (>= 1.0.0),
    grid

【问题讨论】:

  • 如果将 ggplot 移至 Imports 会怎样?将包放入 Depends 被认为是一种可疑的做法。
  • 你可以从命令行构建吗?
  • 如果我在 Imports 字段中输入 ggplot2,我仍然会遇到同样的问题。我一直以这种方式构建包,只有当我升级 R 时,我才开始遇到问题。我不确定如何从命令行构建,但devtools::build() 工作正常...

标签: r rstudio r-package packrat


【解决方案1】:

packrat 似乎不太擅长处理这个问题,而且我总是找不到我正在寻找的文档。我设法让它为新版本安装软件包,但我不知道哪些步骤是关键的以及按什么顺序。

packrat.lock 包含对旧 RVersion 的引用。这可以手动更新,但packrat::snapshot() 也为我做了。我在此之后尝试了packrat::restore(),但在PROJECT/packrat/lib/ARCH/ 中没有看到 R 版本的新目录。我尝试重新启动并重新加载 RStudio、项目和 packrat 几次,最终让它在那里安装包。再重新加载一个项目,就可以看到包了。

我认为这有一个“有福的”命令序列,过去对我来说更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    相关资源
    最近更新 更多