在最后一行,this Docker文件调用littler::install.r
来安装Rcpp
RcppEigen
和matrixStats
。
整个代码在几个月前就像一个魅力。现在,它在最后一步发生了轰炸。更准确地说,Rcpp
和RcppEigen
仍然完美安装,但在安装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
这是我以前从未遇到的错误,无法找到它来自哪里。什么可能导致这个问题?任何信息都会有很多帮助。
答案 0 :(得分:4)
然而,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
为我安装,这是我遇到问题的软件包。
答案 1 :(得分:3)
从我的头脑中,我责怪matrixStats
的变化[但见下文并且看起来无可指责] - 我对所有其他活动部分有些熟悉并且没有意识到变化或错误。
但有一点可疑的是尾随线断裂:
RUN install.r Rcpp RcppEigen matrixStats \
没有它你可以尝试。
编辑:为了实现它的价值,我通过
启动了我们的标准基础层Docker镜像r-basedocker run --rm -ti r-base /bin/bash
并调用
install.r Rcpp RcppEigen matrixStats
执行得很好。
因此,如果其他Docker容器的声音出错,您可能需要与其作者一起处理并完成相对于我们的Dockerfile的更改,他似乎已将其用作基础。