r - 离线环境下使用 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
要么从系统库复制自己,要么从内部存储库安装?
从系统库中复制当然是首选的做法,以节省编译时间。
解决方案
您可能想在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
。)
推荐阅读
- python - 寻找 openstack 负载均衡器组件 (Octavia) 的 Python API 文档
- python - 如何在''requered命令中创建变量
- apache-superset - 如何通过超集中的rest api创建虚拟数据集,只能创建物理数据集
- php -
用返回 null |替换换行符 PHP - flutter - 如何在 Flutter 中将 RichText 传递给 TextField?
- swiftui - SwiftUI Observed Object 未更新
- javascript - 三、Raycaster() 未检测到初始化后添加到场景中的对象?
- node.js - 如何使用 Multer s3 将多个文件上传到多个存储?
- javascript - 在节点js中使用套接字连接事件
- c++ - 为什么 std::variant 实现对空类型的变体占用超过 1 个字节?