在ubuntu20.04上安装mesos导致makefile问题

mqkwyuun  于 2021-07-12  发布在  Spark
关注(0)|答案(2)|浏览(872)

我试图用dockfile在ubuntu20.04上安装mesos的最新版本(1.9.0)。

FROM ubuntu:20.04

ENV MESOS_VERSION 1.9.0
ENV MESOS_ARTIFACT_FILENAME mesos-${MESOS_VERSION}.tar.gz

# Install Mesos dependencies

# Compile and install Mesos (compilation phase uses 6 threads for speed up this process)

# Uninstall Mesos build dependencies

RUN apt-get update && apt-get install -y \
    openjdk-8-jdk \
    python-dev \
    libcurl4-nss-dev \
    libsasl2-dev \
    libsasl2-modules \
    maven \
    libapr1-dev \
    libsvn-dev \
    zlib1g-dev 
RUN wget http://archive.apache.org/dist/mesos/${MESOS_VERSION}/${MESOS_ARTIFACT_FILENAME} \
  && tar -xf ${MESOS_ARTIFACT_FILENAME} 
RUN cd mesos-${MESOS_VERSION} \
  && mkdir build \
  && cd build \
  && ../configure \ 
  && make -j 6 \
  && cp src/.libs/libmesos-${MESOS_VERSION}.so /usr/local/lib/libmesos-${MESOS_VERSION}.so \
  && cd ../.. \
  && rm -rf mesos-${MESOS_VERSION} ${MESOS_ARTIFACT_FILENAME} \
  && apt-get purge -y \
   openjdk-8-jdk \
    python-dev \
    libsasl2-dev \
    libsasl2-modules \
    maven \
   zlib1g-dev \
  && apt-get clean \
  && apt-get autoremove -y \
  && rm -rf /var/lib/apt/lists/*

RUN ln -s /usr/local/lib/libmesos-${MESOS_VERSION}.so /usr/lib/libmesos.so

它一直工作到配置命令

../configure \ 
      && make -j 6 \

配置之后,make commad会抛出不同的错误。其中之一是:
ar:“u”修饰符被忽略,因为“d”是默认值(请参见“u”)

rc/core/lib/gpr/log_linux.cc:42:13: error: ambiguating new declaration of 'long int gettid()'
   42 | static long gettid(void) { return syscall(__NR_gettid); }
      |             ^~~~~~
In file included from /usr/include/unistd.h:1170,
                 from src/core/lib/gpr/log_linux.cc:40:
/usr/include/x86_64-linux-gnu/bits/unistd_ext.h:34:16: note: old declaration '__pid_t gettid()'
   34 | extern _pid_t gettid (void) _THROW;
      |                ^~~~~~
src/core/lib/gpr/log_linux.cc:42:13: warning: 'long int gettid()' defined but not used [-Wunused-function]
   42 | static long gettid(void) { return syscall(__NR_gettid); }
      |             ^~~~~~
make[4]:***[Makefile:2650: /mesos-1.9.0/build/3rdparty/grpc-1.10.0/objs/opt/src/core/lib/gpr/log_linux.o] Error 1

我做错了什么在这里建立mesosSpark码头形象海马??请帮帮我。

jdg4fx2g

jdg4fx2g1#

通过运行 make -j 6 . 这将导致 make 在6个线程中运行,所有线程将同时输出。移动到 -j 1 能够排除故障。
要解决这类问题,您需要在生成阶段失败之前停止生成。如果您使用的是buildx,请选中此项,以便发布如何创建阶段和中间图像。一旦您有了中间阶段,您将创建容器和手动步骤,并解决问题的问题。
为了检查你的问题,我在 ./configure 并创建容器以进一步排除故障。我看到的是有一些先决条件是缺失的,比如 build-essential , autogen , autoconf . 我甚至需要 default-jdk ,但这可能是路径问题,因为我看到您正在安装 openjdk-8-jdk . 仍然存在缺少库的问题,因此您需要从这一点继续。

vktxenjb

vktxenjb2#

我在这个网站上找到了一个解决方案,它对我有用

相关问题