首页 > 解决方案 > 离线环境下使用 renv 部署项目

问题描述

renv将软件包部署到离线机器的正确程序是什么?

我们有一个类似 CRAN 的内部存储库,通过options(repos = list(cran = "http://our.repo.url"))在开发机器和部署机器上进行配置。它在 中指定renv.lock。包renv本身安装在两台机器上,并且都是相同的版本(1.14)。

部署后,在项目目录下启动R后,挂了一会儿,返回错误:

# Bootstrapping renv 0.14.0--------
Warning: unable to access index for repository https://cloud.r-project.org/src/contrib/:
  cannot open URL 'https://cloud.r-project.org/src/contrib/PACKAGES'
* Downloading renv 0.14.0 ... FAILED

我如何告诉renv要么从系统库复制自己,要么从内部存储库安装?

从系统库中复制当然是首选的做法,以节省编译时间。

标签: rrenv

解决方案


您可能想在https://github.com/rstudio/renv/issues提出问题,因为我认为renv目前不支持renv通过自动加载器从非项目库路径加载包。

也就是说,您应该能够通过禁用renv自动加载器来继续前进。在启动 R 之前,您可以设置环境变量:

RENV_ACTIVATE_PROJECT = FALSE

然后,当 R 启动时,renv自动加载器(通过source("renv/activate.R")在项目中运行.Rprofile)将被禁用。然后,您可以稍后renv从任何合适的库路径加载,并调用renv::load()手动加载特定项目。

(设置该环境变量的另一种选择是简单地renv从项目中删除自动加载器.Rprofile。)


推荐阅读