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

renv - manually overwrite package version in lock file

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

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

如果您要更改 renv.lock 中的条目,您通常应该删除已修改条目的哈希组件。哈希用于缓存;它允许 renv::restore() 从全局 renv 缓存中恢复包(如果可用),从而避免包的检索 + 构建 + 安装。

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