2015-09-22 11 views
6

Ich versuche, die binäre Mongodb in Alpine 64-Bit-Linux für einen Docker-Container auszuführen. Aber wenn der Befehl ausgeführt wird: ./mongodb der folgende Fehler auftritt:Führen Sie Mongodb-Binärdateien auf alpinem Linux

bash-4.3 # ./mongod 
bash: ./mongod: No such file or directory. 

Aus welchem ​​Grund es nicht laufen können?

+0

haben laufen Sie eigentlich "./mongod" anstelle von "./mongodb"? –

+0

Ich habe "./mongod" ausgeführt –

Antwort

4

Da die binäre Verteilung von MongoDB gegen glibc verbunden, während Alpine Linux verwendet eine andere C-Bibliothek:

/tmp/mongo/mongodb-linux-x86_64-3.0.7/bin # ./mongod 
sh: ./mongod: not found 
/tmp/mongo/mongodb-linux-x86_64-3.0.7/bin # ldd ./mongod 
    /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) 
    libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) 
    librt.so.1 => /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) 
    libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) 
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x7f18f02ac000) 
    libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) 
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7f18f009a000) 
    libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f18f059f000) 
    ld-linux-x86-64.so.2 => /lib/ld-linux-x86-64.so.2 (0x7f18efe0e000) 
Error relocating ./mongod: gnu_get_libc_version: symbol not found 
Error relocating ./mongod: __isinf: symbol not found 
Error relocating ./mongod: backtrace_symbols: symbol not found 
Error relocating ./mongod: __sbrk: symbol not found 
Error relocating ./mongod: strtoq: symbol not found 
Error relocating ./mongod: __register_atfork: symbol not found 
Error relocating ./mongod: __isnan: symbol not found 
Error relocating ./mongod: pthread_yield: symbol not found 
Error relocating ./mongod: strtouq: symbol not found 
Error relocating ./mongod: __finite: symbol not found 
Error relocating ./mongod: backtrace: symbol not found 
/tmp/mongo/mongodb-linux-x86_64-3.0.7/bin # 

Also, bis jemand ein Alpine Linux-Paket für MongoDB baut, ist Ihre einzige Option, es selbst zu kompilieren.

7

Wenn Sie noch ein Paket verwenden müssen, steht Ihnen nun ein im Test-Repository verfügbares zur Verfügung.

http://dl-3.alpinelinux.org/alpine/edge/testing/x86_64/

echo 'http://dl-3.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories 

apk upgrade --update 

apk add mongodb 
+1

Vielen Dank für Ihre Antwort. Ich habe die Installation von mongodb durchgeführt, aber im Moment, um den Service zu bieten, sind Fehler unten gezeigt. Ich denke, es liegt daran, dass wir noch testen. bash-4.3 # mongod Fehler relocating/usr/bin/mongod: _ZNSt13runtime_errorC1EPKc: Symbol nicht Fehler relocating/usr/bin/mongod gefunden: _ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode: Symbol nicht gefunden Fehler relocating/usr/bin/mongod: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEmc: Symbol nicht gefunden –

+1

Hallo, ich habe es selbst versucht und dann Fehler wie Sie bekommen. Ein bisschen zu früh - hoffentlich wird der Entwickler es bald behoben und in das Release-Repo verschoben werden. Ich habe versucht, es aus der Quelle selbst zu bauen, aber es erwies sich als ziemlich zeitaufwendig - zumal viele der in GO geschriebenen Tools separat kompiliert werden müssen. – Nio