安装没有二进制版本的软件包依赖项

时间:2020-02-13 12:10:26

标签: r packrat

我正在尝试建立一个 packrat 项目,但是它一直失败,因为其中一个软件包(从GitHub安装)依赖于当前在CRAN上没有二进制版本的软件包。这是我收到的错误消息:

> remotes::install_github("BroVic/raampGBV")
Downloading GitHub repo BroVic/raampGBV@master
Skipping 1 packages not available: naijR
Installing 114 packages: DBI, RSQLite, ... 
Installing packages into ‘C:/Users/Admn/project/packrat/lib/x86_64-w64-mingw32/3.6.2’
(as ‘lib’ is unspecified)

   package ‘naijR’ is available as a source package but not as a binary


  There are binary versions available (and will be
  installed) but the source versions are later:
        binary source
digest  0.6.23 0.6.24
stringi  1.4.4  1.4.5
callr    3.4.1  3.4.2
ps       1.3.0  1.3.1

Error: Failed to install 'raampGBV' from GitHub:
  (converted from warning) package ‘naijR’ is not available (as a binary package for R version 3.6.2)

同样,要明确的是,raampGBV仅存在于GitHub(这是一个针对特定项目的软件包)上,而naijR位于CRAN上。当我尝试自行安装raampGBV时,naijR源软件包已从CRAN下载并安装,没有任何问题。但是当通过packrat尝试时,它会失败。

1 个答案:

答案 0 :(得分:2)

根据R 3.6.2的NEWS:

对于Windows或Mac OS X二进制软件包安装,请安装install.packages() 将检查源代码包在相同存储库中是否可用, 并报告是更高版本还是有源码包,但 没有可用的二进制包。可以取消此检查:请参阅 帮助页面。

在检查?install.packages() Binary包部分后,很明显type参数是用来控制上面引用中提到的行为的参数。 typeinstall.packages的默认参数是getOption("pkgType"),在我的情况下返回"win.binary"。这是解决问题的方式:

oldOpt <- getOption("pkgType")
options(pkgType = "both")

remotes::install_github("BroVic/raampGBV")

options(pkgType = oldOpt)

现在,依赖项已正确安装在packrat库中。