2

我正在尝试设置一个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 尝试时,它失败了。

4

1 回答 1

2

根据 R 3.6.2 的新闻:

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

在检查 的Binary packages部分后?install.packages(),很明显该type参数用于控制上面引用中提到的行为。typein的默认参数install.packagesgetOption("pkgType"),在我的例子中返回"win.binary"。这是解决问题的方法:

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

remotes::install_github("BroVic/raampGBV")

options(pkgType = oldOpt)

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

于 2020-02-13T12:10:26.577 回答