Как изменить CRAN репозитория R из renv.lock для получения пакетов из внутреннего / корпоративного репозитория?

#r #cran #renv

#r #cran #renv

Вопрос:

Я позволю проекту R работать в центре обработки данных, а команда, работающая там, не имеет доступа к Интернету, поэтому им придется загружать библиотеки R из внутреннего репозитория (в их интрасети), где размещены все пакеты.

  1. Можно изменить репозиторий, из которого загружаются библиотеки?
  2. и как мы можем указать на этот репозиторий, если я предоставлю им свой renv.lock файл?

Можно ли решить это? :

 repos <- c(CRAN = "https://cloud.r-project.org", WORK = "https://work.example.org")
options(repos = repos)
 

Смотрите здесь

Большое спасибо

Ответ №1:

  1. Можно изменить репозиторий, из которого загружаются библиотеки?

Да, и пример кода, которым вы поделились, верен: активные репозитории пакетов, используемые в сеансе R, управляются с помощью repos опции.

  1. и как мы можем указать на этот репозиторий, если я предоставлю им свой файл renv.lock?

Если вы работаете в renv проекте с автозагрузчиком, то renv при запуске R будут автоматически установлены репозитории из файла блокировки. В противном случае вы можете вызвать renv::load("/path/to/project") явную загрузку проекта в некотором месте.

Я бы рекомендовал прочитать https://rstudio.github.io/renv/articles/renv.html для получения более подробной информации.

Ответ №2:

Я оказался в ситуации, когда были установлены мои частные репозитории, но всякий раз, когда я запускал renv::init() , он не указывал на них. Самое простое решение, которое я мог придумать, прочитав renv документы:

  1. Перед вызовом renv::init() вызовите функцию: Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE") .
  2. Если он возвращает что-либо, кроме URL-адреса вашего частного репозитория пакетов, вызовите функцию: Sys.setenv("RENV_CONFIG_REPOS_OVERRIDE" = "your_private_package_repository_url")
  3. Вызовите функцию renv::init()