2015-09-22 22 views
6

Tôi đang cố gắng chạy nhị phân mongodb trong Alpine 64bit Linux cho vùng chứa docker. Nhưng khi chạy lệnh: ./mongodb lỗi sau xảy ra:Thực thi nhị phân mongodb trên alpine linux

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

Vì lý do nào nó không thể chạy?

+0

cậu thực sự chạy "./mongod" thay vì "./mongodb"? –

+0

Tôi đã chạy "./mongod" –

Trả lời

4

Bởi vì sự phân bố nhị phân của MongoDB được liên kết chống lại glibc, trong khi Alpine Linux sử dụng một thư viện 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 # 

Vì vậy, cho đến khi một người nào đó xây dựng một gói Alpine Linux cho MongoDB, lựa chọn duy nhất của bạn là để biên dịch nó cho mình.

7

Nếu bạn vẫn cần sử dụng gói thì hiện tại có sẵn một gói trong kho thử nghiệm mà bạn có thể thử.

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

Cảm ơn bạn đã trả lời. Tôi đã thực hiện cài đặt mongodb, nhưng tại thời điểm này để cung cấp dịch vụ, các lỗi được hiển thị bên dưới. Tôi nghĩ rằng đó là vì đang được thử nghiệm. bash-4.3 # mongod Lỗi di dời/usr/bin/mongod: _ZNSt13runtime_errorC1EPKc: biểu tượng không được tìm thấy Lỗi di dời/usr/bin/mongod: _ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode: không tìm thấy biểu tượng Lỗi di dời/usr/bin/mongod: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructEmc: biểu tượng không tìm thấy –

+1

Xin chào, các bạn đã thử nó bản thân mình và sau đó có lỗi như chính mình. Một chút sớm - hy vọng các nhà phát triển sẽ nhận được nó cố định và chuyển vào repo phát hành sớm. Tôi đã cố gắng xây dựng nó từ nguồn bản thân mình nhưng nó đã được chứng minh là khá tốn thời gian - đặc biệt là kể từ khi rất nhiều các công cụ - được viết bằng GO - cần phải được biên dịch một cách riêng biệt. – Nio

Các vấn đề liên quan