У меня есть пакет, для которого требуется INLA, который не размещен в CRAN или стандартном GitHub. репозиторий. Существует несколько вопросов SO с подробным описанием того, как установить пакет на персональный компьютер, например этот или даже упоминает его как зависимость в пакете а>.
Два способа, которые обычно рекомендуются для установки на персональном компьютере:
Прямо с сайта INLA
install.packages("INLA",repos=c(getOption("repos"),INLA="https://inla.r-inla-download.org/R/stable"), dep=TRUE)
С хоста GitHub
devtools::install_github(repo = "https://github.com/hrue/r-inla", ref = "stable", subdir = "rinla", build = FALSE)
Теперь они подходят для персональных компьютеров, но не работают в разделе файлов DESCRIPTION Remotes:
.
Если мы делаем url::https://inla.r-inla-download.org/R/stable
, это дает ошибку, что расширение файла не распознано.
Error: Error: Failed to install 'unknown package' from URL:
Don't know how to decompress files with extension
Если мы выполним github::hrue/r-inla
, я не знаю, как передать (и если это вообще возможно) аргументы ref
, subdir
и build
в файле DESCRIPTION.
Предыдущие пакеты использовали только для чтения зеркало кода INLA, размещенное на GitHub, исключительно для этой цели, в этом репозитории, а затем просто используя github::inbo/INLA
. Однако этот репозиторий устарел.
Текущее решение
Вместо этого я делаю прямую ссылку на архив, размещенный на главной веб-странице.
url::https://inla.r-inla-download.org/R/stable/src/contrib/INLA_21.02.23.tar.gz
Это решение работает и проходит CI, а машины могут устанавливаться и загружаться оттуда. Единственная проблема заключается в том, что мне нужно периодически обновлять статическую ссылку на этот архив, и я бы предпочел ссылаться на стабильную сборку либо непосредственно с веб-сайта INLA, как указано выше, либо из репозитория hrue/inla
с переданными другими аргументами. Прямая ссылка на эти ссылки также имеет то преимущество, что когда мой пакет переустанавливается на машину, он узнает, установлена ли на этой машине последняя версия INLA. Есть ли способ добиться этого в файле DESCRIPTION?