2017-11-19 1 views
0

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

Antwort

1

RUN echo "[warning:fedora]" | tee /etc/yum.repos.d/FedoraRepo.repo && \ 
echo "name=fedora" | tee -a /etc/yum.repos.d/FedoraRepo.repo && \ 
echo "mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-23&arch=\$basearch" | tee -a /etc/yum.repos.d/FedoraRepo.repo && \ 
echo "enabled=1" | tee -a /etc/yum.repos.d/FedoraRepo.repo && \ 
echo "gpgcheck=1" | tee -a /etc/yum.repos.d/FedoraRepo.repo && \ 
echo "gpgkey=https://getfedora.org/static/34EC9CBA.txt" | tee -a /etc/yum.repos.d/FedoraRepo.repo && \ 
yum -y update gcc g++ 

zu Ihrem Docker Bild und es sollte funktionieren. Es ist ein bisschen hacky, aber es funktioniert :)

Quelle: https://github.com/rmrice/tileserver-gl/blob/0441685f0db7f890d9510039767a1f66f5e3edbe/docs/installation_centos.rst

+0

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