Запускаем двоичные файлы mongodb на alpine linux

Я пытаюсь запустить двоичный mongodb в Alpine 64bit Linux для контейнера докеров. Но при выполнении команды: ./mongodb возникает следующая ошибка:

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

По какой причине он не может его запустить?


person Rodrigo Luciano Gattermann    schedule 22.09.2015    source источник
comment
вы действительно запускали ./mongod вместо ./mongodb?   -  person Alex da Silva    schedule 22.09.2015
comment
Я побежал ./mongod   -  person Rodrigo Luciano Gattermann    schedule 22.09.2015


Ответы (2)


Если вам все еще нужно использовать пакет, то теперь в репозитории тестирования есть один, который вы можете попробовать.

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
person jacks    schedule 09.01.2016
comment
Спасибо за ваш ответ. Я выполнил установку mongodb, но на данный момент для предоставления услуги ошибки показаны ниже. Думаю, это из-за того, что пока что тестируем. Баш-4,3 # mongod ПЕРЕЕЗД Ошибка / USR / бен / mongod: _ZNSt13runtime_errorC1EPKc: символ не найден Ошибка ПЕРЕЕЗД / USR / бен / mongod: _ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode: символ не найден ПЕРЕЕЗД Ошибка / USR / бен / mongod: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEmc: символ не найден - person Rodrigo Luciano Gattermann; 11.01.2016
comment
Привет, я попробовал сам, а потом получил такие же ошибки, как и вы. Немного преждевременно - надеюсь, разработчик скоро исправит это и перенесет в репозиторий релизов. Я сам пробовал собрать его из исходников, но это оказалось довольно трудоемким процессом, тем более что многие инструменты, написанные на GO, нужно компилировать отдельно. - person jacks; 15.01.2016

Поскольку двоичный дистрибутив MongoDB связан с glibc, тогда как Alpine Linux использует другую библиотеку 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 # 

Итак, пока кто-то не соберет пакет Alpine Linux для MongoDB, единственный вариант - скомпилировать его самостоятельно.

person Carlos Valiente    schedule 20.10.2015