在 docker 容器中安装 R 包时缺少 'aclocal-1.14'

'aclocal-1.14' is missing when installing R package in docker container

在使用最新的生物导体映像 release_core2 构建 docker 容器时,我正在尝试安装包 flowDensity。我收到以下错误:

ERROR: dependencies ‘rgeos’, ‘flowWorkspace’ are not available for package ‘flowDensity’

我可以通过将 apt-get install libgeos-dev 添加到 docker 文件来修复第一个问题。然而,第二个更棘手。它归结为包 RProtoBufLib,它是 cytolib 的依赖项,因此也是 flowWorkspace 的依赖项。我在安装 RProtoBufLib 时收到以下错误:

config.status: error: cannot find input file: `config.h.in'
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /tmp/Rtmpro4BMN/R.INSTALL65e11754ab1d/RProtoBufLib/src/protobuf-2.6.0/missing aclocal-1.14 -I m4
/tmp/Rtmpro4BMN/R.INSTALL65e11754ab1d/RProtoBufLib/src/protobuf-2.6.0/missing: line 81: aclocal-1.14: command not found
WARNING: 'aclocal-1.14' is missing on your system.
         You should only need it if you modified 'acinclude.m4' or
         'configure.ac' or m4 files included by 'configure.ac'.
         The 'aclocal' program is part of the GNU Automake package:
         <http://www.gnu.org/software/automake>
         It also requires GNU Autoconf, GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/autoconf>
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
make: *** [aclocal.m4] Error 127
Makefile:407: recipe for target 'aclocal.m4' failed

我找到了 ,但我不知道在构建 docker 容器时该怎么做。欢迎提出任何建议。谢谢!

我已经在我的本地环境中重现了你的问题。问题是你没有安装 automake、autoconf 和 libtoolize。

这些是我的 install.RDockerfile 脚本。

install.R:

install.packages( c('RProtoBufLib', 'flowDensity'), dependencies = TRUE, repos = c('http://bioconductor.org/packages/3.6/bioc', 'https://cloud.r-project.org') )

Docker 文件:

FROM bioconductor/release_core2

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
          libgeos-dev ed \
          automake autoconf libtool \
    && rm -rf /var/lib/apt/lists/*

ADD install.R /tmp

RUN Rscript /tmp/install.R \
    && rm -rf /tmp/downloaded_packages/ /tmp/*.rds \
    && rm -rf /var/lib/apt/lists/* \
    && rm -rf /usr/share/info/* \
    && rm -rf /usr/share/man/* \
    && rm -rf /usr/share/doc/* \
    && rm -rf /var/lib/dpkg/info

为了构建项目,我执行了这个命令:

docker build -t rbiotest .

注意:构建时间似乎是永恒的。