簡體   English   中英

mongod:符號查找錯誤:mongod:未定義符號:_ZN4YAML6detail9node_data12empty_scalarB5cxx11

[英]mongod: symbol lookup error: mongod: undefined symbol: _ZN4YAML6detail9node_data12empty_scalarB5cxx11

我在運行 Arch Linux 的 Raspberry Pi 上安裝 MongoDB 時遇到問題。
我不假思索地更新了它,顯然我需要通知 Mongo 我也希望升級數據庫文件。 但我沒有這樣做,否則我不會在這里。
於是查了一下這個,google了一下,發現需要降級到3.6,輸入正確的設置再升級。
唯一的問題是 Arch 是一個滾動發行版,這意味着它在不斷升級,降級可能有點痛苦。 幸運的是,我找到了這個網站,在那里我可以獲得我想要的所有包裹。
使用這個我降級了 MongoDB,反過來我不得不降級 boost-libs、wiredtiger 和 yaml-cpp。 這導致 ldd /usr/bin/mongod 看起來像這樣:

linux-vdso.so.1 (0x0000ffff988f3000)
libwiredtiger-3.0.0.so => /usr/lib/libwiredtiger-3.0.0.so 
(0x0000ffff95ddc000)
libsasl2.so.3 => /usr/lib/libsasl2.so.3 (0x0000ffff95dae000)
libstemmer.so.0 => /usr/lib/libstemmer.so.0 (0x0000ffff95d3e000)
libz.so.1 => /usr/lib/libz.so.1 (0x0000ffff95d17000)
libsnappy.so.1 => /usr/lib/libsnappy.so.1 (0x0000ffff95cfe000)
libyaml-cpp.so.0.5 => /usr/lib/libyaml-cpp.so.0.5     (0x0000ffff95c76000)
libpcre.so.1 => /usr/lib/libpcre.so.1 (0x0000ffff95c04000)
libpcrecpp.so.0 => /usr/lib/libpcrecpp.so.0 (0x0000ffff95bea000)
libboost_program_options.so.1.65.1 => /usr/lib/libboost_program_options.so.1.65.1 (0x0000ffff95b4d000)
libboost_filesystem.so.1.65.1 =>    /usr/lib/libboost_filesystem.so.1.65.1 (0x0000ffff95b1f000)
libboost_system.so.1.65.1 => /usr/lib/libboost_system.so.1.65.1 (0x0000ffff95b0a000)
libboost_iostreams.so.1.65.1 => /usr/lib/libboost_iostreams.so.1.65.1 (0x0000ffff95ad9000)
libresolv.so.2 => /usr/lib/libresolv.so.2 (0x0000ffff95ab2000)
libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x0000ffff95a0e000)
libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x0000ffff95747000)
librt.so.1 => /usr/lib/librt.so.1 (0x0000ffff9572f000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x0000ffff9571a000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0000ffff9556e000)
libm.so.6 => /usr/lib/libm.so.6 (0x0000ffff954ab000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x0000ffff95486000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x0000ffff95457000)
libc.so.6 => /usr/lib/libc.so.6 (0x0000ffff952e1000)
/lib/ld-linux-aarch64.so.1 => /usr/lib/ld-linux-aarch64.so.1     (0x0000ffff988c5000)
libtcmalloc.so.4 => /usr/lib/libtcmalloc.so.4 (0x0000ffff950d7000)
liblz4.so.1 => /usr/lib/liblz4.so.1 (0x0000ffff950ac000)
libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x0000ffff9508b000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x0000ffff95057000)
libunwind.so.8 => /usr/lib/libunwind.so.8 (0x0000ffff95005000)

但是現在當我運行 mongod 時,它只是說

mongod: symbol lookup error: mongod: undefined symbol: _ZN4YAML6detail9node_data12empty_scalarB5cxx11E  

我試過用谷歌搜索節點數據空標量,但我沒有得到任何結果或真正知道這意味着什么,所以任何幫助將不勝感激!

另外,我的問題已經在 serverfault 上,但它被擱置了。 所以我希望這是問它的正確地方。

這可以通過將 archlinux 上的yaml-cpp包降級回您在編譯 mongodb 時安裝的版本來解決

正常系統更新將mongodb從4.0.0更改為4.0.4后,在Manjaro(Arch)上發生了與OP相同的錯誤消息類似的問題。 在這種情況下,我也可以確認@Sjon提供的解決方案。 將Yaml-cpp從0.6.3降級到0.6.2解決了與mongodb 4.0.4一起使用的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM