Для установки пакета, отличного от CRAN, требуется зеркало CRAN.

Я пытаюсь установить INLAпакет проекта R-INLA на вычислительном кластере на базе Linux. Пакета нет на CRAN. Согласно их учебнику, достаточно использовать

      install.packages("INLA",repos=c(getOption("repos"),INLA="https://inla.r-inla-download.org/R/stable"), dep=TRUE)

для установки, который отлично работает на моей локальной машине. Однако в вычислительном кластере для запуска этой команды требуется зеркало CRAN, и я получаю следующую ошибку:

      Error in contrib.url(repos, type) : 
  trying to use CRAN without setting a mirror
Calls: install.packages -> startsWith -> contrib.url
Execution halted

В качестве альтернативы я попытался установить пакет напрямую из соответствующего репозитория GitHub, используя devtools. По какой-то причине это дает мне явно неправильный номер версии INLA_99.99.9999. Это запрещает мне вручную добавлять необходимые бинарники через INLA:::inla.binary.install()так как номер версии не найден. Любая помощь приветствуется!

1 ответ

Вы полагаетесь на (R global) options()наличие действительного reposвход в кластер.

Что вы ... не можете, поскольку базовые поставки R (в исходном коде) без таких базовых R Core считают, правильно или неправильно, что они не могут играть в избранное и устанавливать его. Некоторые из нас думают, что это неправильно (поскольку это снижает удобство работы пользователя — как у вас здесь), поэтому в пакете Debian (и, следовательно, Ubuntu) я установил это на «облачное» зеркало, к которому все близки, поскольку оно находится на CDN:

      edd@rob:~$ tail -6 /usr/lib/R/etc/Rprofile.site 
## We set the cloud mirror, which is 'network-close' to everybody, as default
local({
    r <- getOption("repos")
    r["CRAN"] <- "https://cloud.r-project.org"
    options(repos = r)
})
edd@rob:~$ 

Я предлагаю вам сделать то же самое, может быть, в ~/.Rprofile, на кластере.

Другие вопросы по тегам