我正在尝试按照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
知道我为什么会这样吗?感谢。
答案 0 :(得分:3)
这通常意味着编译Mesos需要太多内存;内核耗尽了内存,然后OOM杀手碰巧选择链接器进程通过SIGKILL终止。
尝试安装更多RAM或增加可用的交换空间量。