当使用Renv时,我该如何处理自己编写的R包?

4
在我们的团队中,我们通过一个我在非公共git仓库中设置的自编函数包(例如连接到我们的数据库)来共享自编函数。一般来说,我们避免在用户账户中安装包。相反,我们使用renv来获得可重现的环境。那么,我该如何最好地处理私有包与renv?我是否可以使用renv::install()通过ssh密钥从私有git仓库安装包? 到目前为止,我已经做了以下工作:我克隆了包并通过R CMD INSTALL path/to/folder_with_tar.gz进行了安装。当运行renv::init() / renv::snapshot()时,renv似乎没有捕捉到这个包。我正在尝试使用devtools从仓库中安装(目前正在等待IT解决git2r问题),但这不会解决renv的问题。
抱歉没有提供MWE,我不知道在这种情况下该怎么做。
编辑2022-11-08:
我想保持这个问题开放,因为这不是答案,而是一种解决方法。然而,如果使用带有专业许可证的RStudio,则最佳解决方案是使用Package Manager。这在某种程度上绕过了问题:与其处理如何从renv访问私有git,不如由Package Manager管理访问。

我不使用 renv,但是这里的描述:https://rstudio.github.io/renv/reference/install.html 建议您在私有包的 DESCRIPTION 文件中设置 Remotes: 来实现此功能。 - user2554330
@user2554330:我不想指定我的软件包应该如何加载其依赖项,我想在我的renv中跟踪我的软件包。无论如何,这是一个好提示,因为我找到了这些选项https://rstudio.github.io/renv/reference/install.html#ref-examples,用于从远程位置安装软件包。但是,我发现支持github,但不支持我们正在使用的azure devops存储库。 - evilolive
大多数remotes::install_xxx函数都是对remotes::install_remotes的简单封装,因此也许你可以使用其中一个作为模板来编写install_azure函数。 - user2554330
刚刚看了一下 renv。看起来,如果你把你的包放在标准格式的仓库里,你可以指定 renv 从那里获取它。(我不知道 ssh 密钥的问题将如何处理。)drat 包使设置一个小型仓库变得非常容易。 - user2554330
显示剩余2条评论
1个回答

2
Renv现已更新,支持通过ssh访问Azure DevOps git存储库。由于DevOps与其他git存储库的URL构建方式略有不同,因此存在URL解析问题(Git-Issue)。据我所知,目前CRAN还没有更新,但第一个包含此功能的renv版本是提交8f060d3。感谢开发者修复此问题!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接