在高山linux上执行mongodb二进制文件
我试图在Docker容器中运行Alpine 64位Linux中的二进制mongodb。 但是在运行命令: ./mongodb
时会出现以下错误:
bash-4.3 # ./mongod bash: ./mongod: No such file or directory.
为什么不能运行它?
如果你仍然需要使用一个包,那么你现在可以在testing仓库中find一个包。
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
由于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 #
所以直到有人为MongoDB构build一个Alpine Linux包,你唯一的select就是自己编译它。