我在 Hyper-V 上運行 CentOS 6.7,這意味著我無法就地升級到 7.0。今天我重新啟動了伺服器,從上次重新啟動到今天我安裝的 MongoDB 已升級到最新版本(3.0.6)之間的一段時間。我不知道是誰更新的,但現在它需要一些當前版本的 CentOS 無法支援的庫,如下所示:
$ sudo bin/mongod --storageEngine wiredTiger --dbPath=/media/DataExt/mongodb-wiredtiger-data/
bin/mongod: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by bin/mongod)
bin/mongod: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by bin/mongod)
bin/mongod: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by bin/mongod)
bin/mongod: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by bin/mongod)
bin/mongod: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by bin/mongod)
我嘗試對所有模組(mongodb-org-server)使用 sudo yum downgrade... 命令將 MongoDB 降級到 3.0.5(然後降到 3.0.4,然後一直升到 3.0.0) 、mongodb-org-mongos、 mongodb-org-shell 和mongodb-org-tools),當我嘗試啟動mongod 時,我仍然遇到相同的錯誤。
我還需要做些什麼才能讓 MongoDB 與我擁有的 C 和 C++ 函式庫一起使用嗎?我可以支援的作業系統版本的最大值是 GLIBCXX_3.4.13、GLIBC_3.4.13 和 CXXABI_1.3.3。
答案1
啟動新的 VM 並安裝正確版本的 MongoDB 及其相依性。然後將資料從舊機器複製到新機器。
如果您不知道它是如何升級的,請在舊系統上查看/var/log/yum.log
它何時發生。然後看一下所有系統 cron 作業,確鑿無疑的就是 yumcron。
您顯然可以停用 yumcron 或可以編輯 /etc/yum.conf 以排除某些軟體包。