renv — вручную перезаписать версию пакета в файле блокировки

#r #renv

#r #renv

Вопрос:

Я не могу полностью восстановить один пакет в renv файле блокировки, но я могу установить другую версию этого пакета. Итак, мне интересно, могу ли я вручную перезаписать версию пакета в файле блокировки. Мне нужно просто заменить номер версии? Должен ли я также изменить хэш? Каковы последствия?

Ответ №1:

Вы можете — renv.lock это просто JSON, поэтому вы можете изменить его по мере необходимости, если вам нужно настроить конкретную запись. (Или вы можете использовать renv::record(<package>@<version>) для явного обновления файла блокировки с помощью renv API.)

Если вы изменяете записи в renv.lock , обычно следует удалить компонент хэша для измененных записей. Хэш используется для кэширования; он позволяет renv::restore() восстановить пакет из глобального renv кэша, если он доступен, тем самым избегая извлечения сборки установки пакета.

Если он не установлен, то renv не будет использовать кеш и вместо этого всегда пытаться извлечь пакет из заявленного источника (что кажется подходящим для вашего случая).

Комментарии:

1. Спасибо! Можете ли вы подтвердить, что следующий формат подходит: renv::record(nloptr@1.2.1)