我正在尝试建立一个 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尝试时,它会失败。
答案 0 :(得分:2)
根据R 3.6.2的NEWS:
对于Windows或Mac OS X二进制软件包安装,请安装install.packages() 将检查源代码包在相同存储库中是否可用, 并报告是更高版本还是有源码包,但 没有可用的二进制包。可以取消此检查:请参阅 帮助页面。
在检查?install.packages()
的 Binary包部分后,很明显type
参数是用来控制上面引用中提到的行为的参数。 type
中install.packages
的默认参数是getOption("pkgType")
,在我的情况下返回"win.binary"
。这是解决问题的方式:
oldOpt <- getOption("pkgType")
options(pkgType = "both")
remotes::install_github("BroVic/raampGBV")
options(pkgType = oldOpt)
现在,依赖项已正确安装在packrat
库中。