Deutsches Simutransforum
[server] Probleme beim Starten - Druckversion

+- Deutsches Simutransforum (https://simutrans-forum.de/mybb)
+-- Forum: Simutrans (https://simutrans-forum.de/mybb/forumdisplay.php?fid=3)
+--- Forum: Bugs und Probleme (https://simutrans-forum.de/mybb/forumdisplay.php?fid=11)
+--- Thema: [server] Probleme beim Starten (/showthread.php?tid=7601)

Seiten: 1 2 3


[server] Probleme beim Starten - tadela - 05-09-2013

Hallo Zusammen,

Zuerst mal - entschuldigt bitte, falls ich im falschen Ordner gelandet bin, soweit ich bis jetzt gesehen habe, trifft der Ordner hier mein Problem am besten. Sonst einfach verschieben Wink

Also und nun zu meinem Problem:
Ich habe einen Simutransserver (funktioniert alles auf dem Ubuntu Rechner zu hause) zusammengebastelt und will ihn nun auf dem Rootserver laufen lassen, weil er 24h verfügbar sein sollte und dann nicht immer alle auf meine Anwesenheit warten müssen. Nun habe ich aber für folgendes Problem bis jetzt noch keine Lösung gefunden:

Code:
benutzer@server:~# ldd /das/server/verzeichnis/sim-linux64
/das/server/verzeichnis/sim-linux64: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /das/server/verzeichnis/sim-linux64)
        linux-vdso.so.1 =>  (0x00007fff6ebff000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbe323d7000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fbe321c0000)
        libbz2.so.1 => /lib/x86_64-linux-gnu/libbz2.so.1 (0x00007fbe31faf000)
        libSDL-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0 (0x00007fbe31d13000)
        libSDL_mixer-1.2.so.0 => /usr/lib/x86_64-linux-gnu/libSDL_mixer-1.2.so.0 (0x00007fbe31ac3000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fbe317bb000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbe31539000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fbe31323000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbe30f98000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fbe325fe000)
        libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007fbe30ca4000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbe30aa0000)
        libpulse-simple.so.0 => /usr/lib/x86_64-linux-gnu/libpulse-simple.so.0 (0x00007fbe3089a000)
        libpulse.so.0 => /usr/lib/x86_64-linux-gnu/libpulse.so.0 (0x00007fbe30650000)
        libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fbe30315000)
        libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fbe30102000)
        libdirectfb-1.2.so.9 => /usr/lib/x86_64-linux-gnu/libdirectfb-1.2.so.9 (0x00007fbe2fe7d000)
        libfusion-1.2.so.9 => /usr/lib/x86_64-linux-gnu/libfusion-1.2.so.9 (0x00007fbe2fc73000)
        libdirect-1.2.so.9 => /usr/lib/x86_64-linux-gnu/libdirect-1.2.so.9 (0x00007fbe2fa5a000)
        libcaca.so.0 => /usr/lib/x86_64-linux-gnu/libcaca.so.0 (0x00007fbe2f98d000)
        libts-0.0.so.0 => /usr/lib/x86_64-linux-gnu/libts-0.0.so.0 (0x00007fbe2f78a000)
        libmikmod.so.2 => /usr/lib/x86_64-linux-gnu/libmikmod.so.2 (0x00007fbe2f535000)
        libvorbisfile.so.3 => /usr/lib/x86_64-linux-gnu/libvorbisfile.so.3 (0x00007fbe2f32c000)
        libvorbis.so.0 => /usr/lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007fbe2f0ff000)
        libFLAC.so.8 => /usr/lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007fbe2eeb2000)
        libmad.so.0 => /usr/lib/libmad.so.0 (0x00007fbe2ec93000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fbe2ea8b000)
        libpulsecommon-2.0.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-2.0.so (0x00007fbe2e827000)
        libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007fbe2e623000)
        libjson.so.0 => /lib/x86_64-linux-gnu/libjson.so.0 (0x00007fbe2e418000)
        libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fbe2e1d2000)
        libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fbe2dfb2000)
        libslang.so.2 => /lib/x86_64-linux-gnu/libslang.so.2 (0x00007fbe2dc1b000)
        libncursesw.so.5 => /lib/x86_64-linux-gnu/libncursesw.so.5 (0x00007fbe2d9eb000)
        libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fbe2d7c2000)
        libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0 (0x00007fbe2d5bb000)
        libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007fbe2d3ba000)
        libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007fbe2d19e000)
        libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007fbe2cf97000)
        libXtst.so.6 => /usr/lib/x86_64-linux-gnu/libXtst.so.6 (0x00007fbe2cd92000)
        libwrap.so.0 => /lib/x86_64-linux-gnu/libwrap.so.0 (0x00007fbe2cb86000)
        libsndfile.so.1 => /usr/lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007fbe2c91f000)
        libasyncns.so.0 => /usr/lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007fbe2c71a000)
        libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007fbe2c514000)
        libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fbe2c311000)
        libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fbe2c10c000)
        libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fbe2bf06000)
        libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007fbe2bcf7000)
        libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007fbe2bade000)
        libvorbisenc.so.2 => /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007fbe2b60f000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fbe2b3f9000)

Nun.. woher bekomme ich diese GLIBC_2.14?

Es erstaunt mich vor allem, dass auf Ubuntu alles bestens geklappt hat und auf debian (auf dem ubuntu ja aufgebaut ist) nicht

Danke für euere Hilfe & liebe Grüsse
tadela

Edit: Der Server läuft unter Debian7 wheezy


- Paco_m - 05-09-2013

Vermutlich läuft auf deinem Server eine ältere glibc Version mit der dein zu Hause kompiliertes Programm nicht läuft.
Die glibc kannst auch nicht so ohne weiteres austauschen weil das ein grundlegender Teil des Systems ist.
Ich würde empfehlen, daß du dir zu Hause eine Umgebung einrichtest mit exakt dem betriebssystem vom Server und damit kompilierst, dann keine es keine solchen Probleme geben.
Du kannst dafür das Serverbetriebssystem (auf die gleiche Version achten!) mittels chroot einfach in ein Verzeichnis bei dir zu Hause installieren, wennst dann für den Server was kompilieren willst wechselst du einfach per chroot in das Verzeichnis, da braucht man keine VM, kein Neustarten und nichts.. ist an sich völlig unproblematisch Wink


- wernieman - 06-09-2013

Allerdings würde ich Dir für Test eine VM empfehlen. Zu Hause kann man einfacher testen als auf einem root-Server ...

Uns wie schon geschrieben: Kompiliere Dir Simutrans für die Zielplatform.

Habe übrigens bei den linux-Nightlys für 64 Bit das gleiche Problem.

P.S. Ist der root-Server ein 64, 32 oder Multilib-System?


- Citarofahrer - 06-09-2013

Der Server läuft mit 64 Bit. Tadela hatte mir das mal gesagt


- tadela - 06-09-2013

@Citarofahrer hör bitte auf Antworten für mich zu geben, danke

Und ganz sicher bin ich wegen dem Multilib nicht, ich tippe eher auf 32-bit als 64.. Und ich habe es nicht selber kompiliert sondern die bereits kompilierte Datei genutzt. Wie würde ich das mit der Multilib zu 100% sicherheit rausfinden? (bin mir gerade echt nicht sicher, sorry)


- Paco_m - 06-09-2013

tadela,'index.php?page=Thread&postID=97222#post97222' schrieb:Und ganz sicher bin ich wegen dem Multilib nicht, ich tippe eher auf 32-bit als 64.. Und ich habe es nicht selber kompiliert sondern die bereits kompilierte Datei genutzt.

Kann man alles rausfinden.
1. mal die Systemarchitektur deines Servers ermitteln (uname -m) und 2. gucken welche Architektur dein Simutrans hat (file)
Hier als Beispiel von meinem Server:
Code:
# uname -m
x86_64
# file sim-server-r6390
sim-server-r6390: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

tadela,'index.php?page=Thread&postID=97222#post97222' schrieb:Wie würde ich das mit der Multilib zu 100% sicherheit rausfinden? (bin mir gerade echt nicht sicher, sorry)
Es gibt jetzt keine allgemeine Antwort darauf ob ein System multilib ist oder nicht, oft ist es zum Teil multilib und zum Teil nicht.
Wenn auf einem 64bit System eine 32bit Anwendung laufen soll dann müssen die Bibliotheken welche genau diese Anwendung braucht auch (oder nur) in 32bit installiert sein, das heißt aber dann noch lange nicht daß auch andere 32bit Anwendungen laufen - die Frage nach multilib muß man also für jede Anwendung getrennt anschauen.


- tadela - 06-09-2013

Ach ja genau..

Also grundsätzlich müsste doch alles klappen..

Code:
# uname -m
x86_64

Code:
# file sim-linux64
sim-linux64: ELF 64-bit LSB executable, x86-64,
version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux
2.6.9, stripped

Meines wissens müsste es doch funktionieren?


- Kapitän Knusper - 06-09-2013

Wheezy hat glibc-2.13, das Programm ist jedoch gegen Version 2.14 gelinkt.


- tadela - 06-09-2013

soll heissen ich brauch doch die Version gcc4 vom Simutrans Server?

Oder kann ichs auch einfach nur anderst "verlinken"


- Paco_m - 06-09-2013

tadela,'index.php?page=Thread&postID=97226#post97226' schrieb:soll heissen ich brauch doch die Version gcc4 vom Simutrans Server?

Oder kann ichs auch einfach nur anderst "verlinken"
Die gcc Version hat damit nichts zu tun, es gibt 2 Methoden gegen eine bestimmte glibc zu kompilieren:
1) Du baust einen sogenannten crosscompiler der dann eben für eine andere glibc als die mit der dein System läuft kompiliert, das Einrichten und Konfigurieren ist aber nicht einfach
2) Du installierst das Betriebssystem des Servers in einer chroot Umgebung oder wahlweise als VM (was aber nicht nötig ist) und kompilierst innerhalb dieses Systems - siehe meine erste Antwort von gestern

Als Notlösung könnte ich dir anbieten ein Simutrans für glibc 2.12 zu erstellen (mußt mir nur die gewünschte Versionsnummer sagen) aber grundsätzlich wäre es schon sinnvoll wenn du zu Hause eine Umgebung hättest wo du selbst Dinge für den Server kompilieren kannst. Wink