renv-手动覆盖锁定文件中的软件包版本

问题描述

我无法在renv锁定文件中完全还原一个软件包,但是我可以安装该软件包的其他版本。所以我想知道是否可以手动覆盖锁定文件中的软件包版本。我只需要替换版本号吗?我也应该更改哈希吗?有什么后果?

解决方法

您可以-renv.lock仅是JSON,因此如果需要调整特定条目,可以根据需要进行修改。 (或者,您可以使用renv::record(<package>@<version>) API通过renv显式更新锁文件。)

如果要更改renv.lock中的条目,通常应删除用于修改条目的哈希组件。哈希用于缓存;它允许renv::restore()从全局renv缓存中还原软件包(如果有),从而避免了对该软件包进行检索+构建+安装。

如果未设置,则renv将不使用缓存,而是始终尝试从声明的源中检索包(这似乎适合您的情况)。