我正在尝试在docker容器中编译以下程序。
https://github.com/adaptivecomputing/torque
尝试运行autoconf
时,我收到错误“可能是未定义的宏:AC_MSG_ERROR”
Google已针对此确切错误提供了数十项结果。其中大多数都是通过安装pkg-config或libtool-ltdl
来解决的从我的docker文件中可以看到,这两个软件包都已安装。
FROM centos
RUN yum install -y autoconf make autogen gcc gcc-c++ openssl-devel git libxml2-devel libtool libtool-ltdl
RUN git clone git://github.com/adaptivecomputing/torque.git -b 4.2.6.1 /tmp/pbs_server
RUN cd /tmp/pbs_server
RUN autoconf
RUN ./configure --with-debug
RUN make -j4
RUN make install
以下是运行docker build .
Step 4 : RUN autoconf
configure.ac:50: error: possibly undefined macro: AC_MSG_ERROR
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:54: error: possibly undefined macro: AM_INIT_AUTOMAKE
configure.ac:57: error: possibly undefined macro: AM_PROG_CC_C_O
configure.ac:63: error: possibly undefined macro: AM_MAINTAINER_MODE
configure.ac:82: error: possibly undefined macro: AM_CONFIG_HEADER
configure.ac:144: error: possibly undefined macro: AM_CONDITIONAL
configure.ac:644: error: possibly undefined macro: AC_PROG_LIBTOOL
configure.ac:651: error: possibly undefined macro: AM_PROG_LEX
configure.ac:2053: error: possibly undefined macro: AC_DECL_H_ERRNO
configure.ac:2056: error: possibly undefined macro: AC_DECL_FD_SET_SYS_SELECT_H
configure.ac:2138: error: possibly undefined macro: AC_C_BIGENDIAN_CROSS
configure.ac:2204: error: possibly undefined macro: AC_CREATE_GENERIC_CONFIG
我在docker之外和普通服务器之外编译这个程序没有问题。我怀疑有一个图书馆或遗漏的东西。
任何人都可以解释为什么我会收到此错误,或者更好的是,如何解决它?
答案 0 :(得分:2)
正如@BrettHale所说,你需要安装automake
(我没有在yum install
行中看到),因为扭矩肯定会使用它。这个:
RUN autoconf
可能应该是:
RUN ./autogen.sh
它会调用autoconf
以及其他内容。我仍然不明白你为什么做了什么似乎立即死亡。 AC_MSG_ERROR
等是autoconf的基本宏的一部分。几乎像这些宏在docker中是不可读的......
答案 1 :(得分:1)
您需要安装autoconf,automake和libtool。可能还有pkgconfig。之后,运行autogen.sh
脚本。现在应该有autotool脚本,您可以配置包。