#r #cran #renv
#r #cran #renv
Вопрос:
Я позволю проекту R работать в центре обработки данных, а команда, работающая там, не имеет доступа к Интернету, поэтому им придется загружать библиотеки R из внутреннего репозитория (в их интрасети), где размещены все пакеты.
- Можно изменить репозиторий, из которого загружаются библиотеки?
- и как мы можем указать на этот репозиторий, если я предоставлю им свой
renv.lock
файл?
Можно ли решить это? :
repos <- c(CRAN = "https://cloud.r-project.org", WORK = "https://work.example.org")
options(repos = repos)
Смотрите здесь
Большое спасибо
Ответ №1:
- Можно изменить репозиторий, из которого загружаются библиотеки?
Да, и пример кода, которым вы поделились, верен: активные репозитории пакетов, используемые в сеансе R, управляются с помощью repos
опции.
- и как мы можем указать на этот репозиторий, если я предоставлю им свой файл renv.lock?
Если вы работаете в renv
проекте с автозагрузчиком, то renv
при запуске R будут автоматически установлены репозитории из файла блокировки. В противном случае вы можете вызвать renv::load("/path/to/project")
явную загрузку проекта в некотором месте.
Я бы рекомендовал прочитать https://rstudio.github.io/renv/articles/renv.html для получения более подробной информации.
Ответ №2:
Я оказался в ситуации, когда были установлены мои частные репозитории, но всякий раз, когда я запускал renv::init()
, он не указывал на них. Самое простое решение, которое я мог придумать, прочитав renv
документы:
- Перед вызовом
renv::init()
вызовите функцию:Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE")
. - Если он возвращает что-либо, кроме URL-адреса вашего частного репозитория пакетов, вызовите функцию:
Sys.setenv("RENV_CONFIG_REPOS_OVERRIDE" = "your_private_package_repository_url")
- Вызовите функцию
renv::init()