Нестандартный пакет Remotes INLA в пакете R

У меня есть пакет, для которого требуется 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?


person caldwellst    schedule 30.07.2021    source источник
comment
Привет! Вы проверили подход, принятый inlabru? См. здесь   -  person agila    schedule 03.08.2021


Ответы (1)


Это не идеальный ответ, но, возможно, вы можете добавить URL-адрес zip стабильной ветки INLA из нового репозитория github INLA: -

url::https://github.com/hrue/r-inla/archive/refs/heads/stable.zip

Следовательно, это всегда будет устанавливать последнюю стабильную версию пакета.

person Shawn Brar    schedule 03.08.2021