Mesos 1.1.0 构建错误

Mesos 1.1.0 build error

我正在尝试按照 getting started 指南构建 Apache Mesos 1.1.0。

在我看来,包括配置脚本在内的一切都没有问题,但我在构建它时遇到了错误。我正在使用 Ubuntu 16.04 64 位和 java-1.8.0-openjdk-amd64。我还使用了稳定的 tar.gz 源文件,而不是推荐的 git。

下面是 make 的错误信息:

/bin/bash ../libtool  --tag=CC --tag=CXX  --mode=link gcc  -g1 -O0 -Wno-unused-local-typedefs -release 1.1.0  -o libmesos.la -rpath /usr/local/lib                              libmesos_no_3rdparty.la ../3rdparty/glog-0.3.3/libglog.la ../3rdparty/leveldb-1.4/libleveldb.a ../3rdparty/libprocess/libprocess.la ../3rdparty/protobuf-2.6.1/src/libprotobuf.la ../3rdparty/zookeeper-3.4.8/src/c/libzookeeper_mt.la -lsvn_subr-1 -lsvn_delta-1 -lapr-1 libjava.la -lz -lsvn_delta-1 -lsvn_subr-1 -lsasl2 -lcurl -lapr-1 -lz  -lrt

*** Warning: Linking the shared library libmesos.la against the
*** static library ../3rdparty/leveldb-1.4/libleveldb.a is not portable!
libtool: link: rm -fr  .libs/libmesos-1.1.0.so
libtool: link: g++  -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o  -Wl,--whole-archive ./.libs/libmesos_no_3rdparty.a ../3rdparty/libprocess/.libs/libprocess.a ./.libs/libjava.a -Wl,--no-whole-archive  ../3rdparty/glog-0.3.3/.libs/libglog.a ../3rdparty/leveldb-1.4/libleveldb.a /opt/mesos-1.1.0/build/3rdparty/glog-0.3.3/.libs/libglog.a /opt/mesos-1.1.0/build/3rdparty/libev-4.22/.libs/libev.a ../3rdparty/protobuf-2.6.1/src/.libs/libprotobuf.a ../3rdparty/zookeeper-3.4.8/src/c/.libs/libzookeeper_mt.a -lpthread /usr/lib/x86_64-linux-gnu/libsvn_delta-1.so /usr/lib/x86_64-linux-gnu/libsvn_subr-1.so -lsasl2 /usr/lib/x86_64-linux-gnu/libcurl-nss.so /usr/lib/x86_64-linux-gnu/libapr-1.so -lz -lrt -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/5/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o  -g1 -O0   -pthread -Wl,-soname -Wl,libmesos-1.1.0.so -o .libs/libmesos-1.1.0.so
collect2: fatal error: ld terminated with signal 9 [Killed]
compilation terminated.
Makefile:3594: recipe for target 'libmesos.la' failed
make[2]: *** [libmesos.la] Error 1
make[2]: Leaving directory '/opt/mesos-1.1.0/build/src'
Makefile:3320: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/opt/mesos-1.1.0/build/src'
Makefile:762: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

知道我为什么会收到这个吗?谢谢

这通常意味着编译 Mesos 需要太多内存;内核 运行 内存不足,然后 OOM 杀手恰好选择链接器进程通过 SIGKILL 终止。

尝试安装更多 RAM 或增加可用的交换容量 space。