【问题标题】:Install package dependency that has no binary version安装没有二进制版本的包依赖
【发布时间】:2020-02-13 12:10:26
【问题描述】:

我正在尝试设置一个 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 时,会从CRAN 下载并安装naijR 源包,没有任何问题。但是当通过 packrat 尝试时,它会失败。

【问题讨论】:

    标签: r packrat


    【解决方案1】:

    根据 R 3.6.2 的新闻:

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

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

    oldOpt <- getOption("pkgType")
    options(pkgType = "both")
    
    remotes::install_github("BroVic/raampGBV")
    
    options(pkgType = oldOpt)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-02
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      相关资源
      最近更新 更多