4

我有以下设置:

  • 我从 git repo 初始化了一个新的 R-Project (R 3.4.3)。
  • 来自 repo 的项目使用renv(0.11.0) 对项目包进行快照
  • renv.lock文件包含多个包。其中之一是raster版本2.9-5

由于 CRAN 上较新版本的raster包更改了 R 依赖项(R>= 3.5),renv因此无法恢复包,因为在 CRAN 上renv找不到raster包。

信息:

Error: package 'raster' is not available

git repo 上的项目是使用 R 版本 3.4.3 构建的。我也为这个项目使用了本地仓库,但这根本不会引起问题。

有什么建议可以renv按预期工作吗?

4

2 回答 2

0

这似乎对我有用renv 0.12.0。使用这个锁文件:

{
  "R": {
    "Version": "3.4.4",
    "Repositories": [
      {
        "Name": "CRAN",
        "URL": "https://cran.rstudio.com"
      }
    ]
  },
  "Packages": {
    "Rcpp": {
      "Package": "Rcpp",
      "Version": "1.0.5",
      "Source": "Repository",
      "Repository": "CRAN",
      "Hash": "125dc7a0ed375eb68c0ce533b48d291f"
    },
    "lattice": {
      "Package": "lattice",
      "Version": "0.20-35",
      "Source": "Repository",
      "Repository": "CRAN",
      "Hash": "10a22a9a66fbe7944e9ef98985d7c927"
    },
    "raster": {
      "Package": "raster",
      "Version": "2.9-5",
      "Source": "Repository",
      "Repository": "CRAN",
      "Hash": "85a01c2f0ad30d43f51b861a2d78d5e8"
    },
    "renv": {
      "Package": "renv",
      "Version": "0.12.0",
      "Source": "Repository",
      "Repository": "CRAN",
      "Hash": "7340c71f46a0fd16506cfa804e224e44"
    },
    "sp": {
      "Package": "sp",
      "Version": "1.4-4",
      "Source": "Repository",
      "Repository": "CRAN",
      "Hash": "e0485290545c0e768c2b50390114da1f"
    }
  }
}

我看到以下内容renv::restore()

> renv::restore()
The following package(s) will be updated:

# CRAN ===============================
- Rcpp     [* -> 1.0.5]
- raster   [* -> 2.9-5]
- sp       [* -> 1.4-4]

Do you want to proceed? [y/N]: y
* Querying repositories for available binary packages ... Done!
* Querying repositories for available source packages ... Done!
Retrieving 'https://cran.rstudio.com/src/contrib/Rcpp_1.0.5.tar.gz' ...
        OK [file is up to date]
Retrieving 'https://cran.rstudio.com/src/contrib/Archive/raster/raster_2.9-5.tar.gz' ...
        OK [file is up to date]
Retrieving 'https://cran.rstudio.com/src/contrib/sp_1.4-4.tar.gz' ...
        OK [file is up to date]
Installing Rcpp [1.0.5] ...
        OK [built from source]
Installing sp [1.4-4] ...
        OK [built from source]
Installing raster [2.9-5] ...
        OK [built from source]

如果您在更新到 后仍然遇到问题renv 0.12.0,我建议您在https://github.com/rstudio/renv/issues提交一个带有一些额外上下文的问题。

于 2020-10-24T05:53:54.670 回答
0

这些建议对我不起作用。但是我通过忽略来自 renv 的缓存解决了这个问题。似乎在 renv 中缓存包会导致此错误。

解决方案:我确实在使用之前将 renv 设置use.cash为.Frenv::restore()

如果有人对此有更多了解或有任何关于在 renv 中缓存的好文档,我将不胜感激。

于 2020-11-02T14:46:49.150 回答