checkCompilerOptions 安装包时出错 (littler/Docker)

checkCompilerOptions Error while installing package (littler/Docker)

在最后一行,this Docker 文件调用 littler::install.r 来安装 Rcpp RcppEigenmatrixStats

几个月前,整个代码运行得非常棒。现在,它在最后一步爆炸了。更准确地说,RcppRcppEigen 仍然安装完美,但在安装 matrixStats 时,我得到:

installing to /usr/local/lib/R/site-library/matrixStats/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Error in get(name, envir = asNamespace(pkg), inherits = FALSE) : 
  object 'checkCompilerOptions' not found
Calls: ::: -> get
Execution halted
ERROR: loading failed
* removing ‘/usr/local/lib/R/site-library/matrixStats’

The downloaded source packages are in
    ‘/tmp/downloaded_packages’
Warning message:
In install.packages(f, lib, if (isMatchingFile(f)) NULL else repos) :
  installation of package ‘matrixStats’ had non-zero exit status

这是我以前从未遇到过的错误,甚至无法找到它的来源。是什么导致了这个问题?任何信息都会有很大帮助。

从我的头顶来看,我会责怪 matrixStats 的变化 [但请看下面,这似乎是无可指责的] -- 我对所有其他活动部分有点熟悉,但没有意识到变化或错误。

尾部换行符有点可疑:

RUN install.r Rcpp RcppEigen  matrixStats \

你可以不用它试试。

编辑: 值得一提的是,我刚刚启动了我们的标准基础层 Docker 图片 r-base via

docker run --rm -ti r-base /bin/bash

并调用了

install.r Rcpp RcppEigen matrixStats

执行得很好。

因此,如果其他 Docker 容器有问题,您可能需要与它的作者联系并处理他相对于我们的 Docker 文件所做的更改,他似乎将其用作基地.

但是,使用 rocker/r-devel、

的 R-devel

docker run --rm -ti rocker/r-devel /bin/bash

RD

install.packages("matrixStats")

给出同样的错误。我猜这是另一个 R-devel 更改,它取消了我们之前认为理所当然的事情,在这种情况下与 compiler 包有关。但是,我还没有解决方案。只是(重新)安装或附加 compiler 没有帮助。

更新

使用 R CMD INSTALL --no-byte-compile 允许 backports 为我安装,这是我遇到问题的软件包。