首页 > 解决方案 > renv 真的安装了与 r 基础环境隔离的软件包吗?

问题描述

我有一个通过rstudio使用 GUI 创建的项目并点击(新建项目)按钮。以下是我如何使用renv. 我的操作系统是 Ubuntu 20.04 LTS。

从 r 工作室菜单

在此处输入图像描述

到目前为止一切顺利,renv已经创建了通常的可疑文件和文件夹: .Rprofile renv/activate.R renv/library

它还没有创建renv.lock。我相信这是因为我从未要求renv::snapshot()创建文件夹。

然后我开始在我的项目上正常工作,并通过调用安装了几个包install.packages()。例如dplyr是其中一个包。但是我注意到,当我关闭项目并调用installed.packages() 我项目中安装的相同包时,也会安装在外部。我认为renvcondapython 中的环境一样工作,packages与其他环境隔离。我在这里想念什么?我的直觉是,这并不是像pythonrenv那样真正的虚拟环境。conda

当我libPaths()在我的项目中运行时,我得到了路径renv/library/tmp/...路径:

[1] "/home/alex/Documents/GitHub/CIMMYT/renv/library/R-4.0/x86_64-pc-linux-gnu"
[2] "/tmp/RtmpdfQT46/renv-system-library"  

当我libPaths()在项目之外运行时,我得到:

[1] "/home/alex/R/x86_64-pc-linux-gnu-library/4.0"
[2] "/usr/local/lib/R/site-library"               
[3] "/usr/lib/R/site-library"                     
[4] "/usr/lib/R/library"  

标签: rrenv

解决方案


然后我开始在我的项目上正常工作,并通过调用 install.packages() 安装了几个包。例如 dplyr 就是其中之一。但是我注意到,当我关闭项目并调用 installed.packages() 时,我的项目中安装的相同包也安装在外部。我认为 renv 就像 python 中的 conda 环境一样工作,其中包与其他环境隔离。我在这里想念什么?我的直觉是 renv 并不是像 conda for python 这样的虚拟环境。

这里最可能的答案是这些包也安装到您的用户库中,在一个单独的时间点。

如果您可以将其提炼成可重现的示例,您可以在https://github.com/rstudio/renv/issues提出问题。但是,据我所知,一切都按预期工作,并且安装到您的用户库中的软件包可能通过其他机制到达那里。


推荐阅读