R 包中的非标准远程包 INLA

问题描述 投票:0回答:2

我有一个需要 INLA 的包,该包未托管在 CRAN 或标准 GitHub 存储库上。有多个 SO 问题详细说明了如何在个人计算机上安装软件包,例如 this,甚至将其作为 软件包中的依赖项提及。

通常建议在个人计算机上安装的两种方法是:

直接来自 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)
现在,这些对于个人机器来说很好,但在描述文件

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
 参数。

以前的软件包使用托管在 GitHub 上的 INLA 代码的只读镜像,仅用于此目的,在此

repo,然后仅使用 github::inbo/INLA

。然而,这个存储库已经过时了。

当前解决方案

我所做的是直接引用主网页上托管的 tarball。

url::https://inla.r-inla-download.org/R/stable/src/contrib/INLA_21.02.23.tar.gz
这个解决方案有效,并且通过了 CI,并且机器能够从那里安装和加载。唯一的问题是,我需要定期更新此 tarball 的静态链接,并且更愿意直接从上述 INLA 网站引用稳定版本,或者通过传递其他参数的 

hrue/inla

 存储库。直接引用这些链接还有一个优点,即当我的软件包在计算机上重新安装时,它会识别该计算机上是否安装了最新版本的 INLA。有没有办法在描述文件中实现这一点?

r r-package
2个回答
4
投票
这不是一个完美的答案,但也许你可以做的是从

zip

 的新 github 存储库添加 
INLA
 稳定分支的 
INLA
 url:-

url::https://github.com/hrue/r-inla/archive/refs/heads/stable.zip
因此,这将始终安装该软件包的最新稳定版本。


0
投票
您可以通过将以下行添加到您的

DESCRIPTION

 文件中来完成此操作。

Additional_repositories: https://inla.r-inla-download.org/R/stable
    
© www.soinside.com 2019 - 2024. All rights reserved.