Ich habe TileServer GL erfolgreich aus der Quelle in einer Debian-Umgebung gebaut und ausgeführt, aber die Anforderungen für diese Installation sind, dass es auf CentOS 7 ist und es scheint, als ob ich ein unüberwindbares gefunden habe Problem. Ich bin allerdings kein Linuxexperte, daher hoffe ich, dass jemand hier eine Anleitung geben kann.Building TileServer GL von der Quelle auf CentOS 7
Unten ist der Teil meiner Dockerfile wo ich Knoten und CentOS Abhängigkeiten bin installieren:
FROM centos:latest
RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
RUN yum -y install nodejs \
cairo \
cairo-devel \
gcc-c++ \
libcurl-devel \
libgcc.x86_64 \
libXxf86vm-devel \
make \
mesa-libGL-devel \
mesa-libgbm \
mesa-libGLES \
protobuf-devel \
xorg-x11-server-Xvfb
RUN rm -rf /var/cache/yum
# Symlink to libcurl-gnutls
RUN ln -s /usr/lib64/libcurl.so.4 /usr/lib64/libcurl-gnutls.so.4
Als ich docker run
das Bild, TileServer aber dann versucht zu starten, sagt:
Error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /tileserver-gl/node_modules/@mapbox/mapbox-gl-native/lib/mapbox_gl_native.node)
In CentOS 7, die Versionen von GLIBCXX enden bei 3.4.19 und nach dem, was ich gelesen habe, gibt es keine Möglichkeit, dies zu ändern. So sind meine Fragen:
1) Ist es wahr, dass ich libstdC++ in CentOS nicht aktualisieren kann?
2) Wenn das stimmt, gibt es dann einen anderen Weg? Gibt es vielleicht eine Möglichkeit, TileServer GL oder mapbox-gl-native zu erstellen, wo frühere Versionen von C++ akzeptabel sind?
Dieses Problem ist mentioned in this issue thread, aber es gibt nie eine Auflösung. Jede Hilfe dabei wäre wirklich toll. In
Du bist ein Lebensretter !! Ich mag, dass Ihre Lösung von rmrice stammt, dem Benutzer, der die Frage ursprünglich im Github-Problemthread gestellt hat. Das ist großartig - vielen Dank. Ich würde +1000 das, wenn ich könnte :) – esvendsen