2015-09-22 27 views
6

Próbuję uruchomić binarny mongodb w alpejskim 64-bitowym Linuksie dla kontenera dokera. Ale podczas uruchamiania komendy: ./mongodb pojawia się następujący błąd:Wykonywanie binariów mongodb na alpejskim linuxie

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

Z jakiego powodu nie można go uruchomić?

+0

czy rzeczywiście uruchomić "./mongod" zamiast "./mongodb"? –

+0

Uruchomiłem "./mongod" –

Odpowiedz

4

Ponieważ binarny podział MongoDB jest związany przeciwko glibc, natomiast Alpine Linux używa innej biblioteki C:

/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 # 

Więc dopóki ktoś buduje pakiet Alpine Linux dla MongoDB, jedyną opcją jest, aby je skompilować samemu.

7

Jeśli nadal potrzebujesz użyć pakietu, teraz jest dostępny w repozytorium testów, z którym możesz spróbować.

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

Dziękuję za odpowiedź. Wykonałem instalację mongodb, ale w chwili obecnej, aby świadczyć usługę, błędy są pokazane poniżej. Myślę, że to z powodu bycia w testach. bash-4.3 # mongod Błąd przeprowadzki/usr/bin/mongod: _ZNSt13runtime_errorC1EPKc: symbol nie znaleziono Błąd przeprowadzki/usr/bin/mongod: _ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode: symbol nie znaleziono Błąd przeprowadzki/usr/bin/mongod: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEmc: symbol nie znalazłem –

+1

Cześć, próbowałem tego sam, a potem dostałem błędy jak ty. Trochę za wcześnie - miejmy nadzieję, że deweloper go naprawi i wkrótce zostanie przeniesiony do repozytorium. Próbowałem zbudować go ze źródła, ale okazało się to dość czasochłonne - zwłaszcza, że ​​wiele narzędzi - napisanych w GO - musi być skompilowanych osobno. – Nio