我是Windows的人。当我需要使用基于Linux的操作系统时,我总是选择Ubuntu。但是,这次他们没有给我任何选择。
我尝试从此link of mongodb site安装MongoDB。我已经创建了存储库文件,然后我尝试安装它,我收到此错误消息:
Error: Package: mongodb-org-tools-3.2.1-1.amzn1.x86_64 (mongodb-org-3.2)
Requires: libstdc++.so.6(CXXABI_1.3.5)(64bit)
Error: Package: mongodb-org-mongos-3.2.1-1.amzn1.x86_64 (mongodb-org-3.2)
Requires: libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
Error: Package: mongodb-org-shell-3.2.1-1.amzn1.x86_64 (mongodb-org-3.2)
Requires: libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
Error: Package: mongodb-org-server-3.2.1-1.amzn1.x86_64 (mongodb-org-3.2)
Requires: libstdc++.so.6(CXXABI_1.3.5)(64bit)
Error: Package: mongodb-org-server-3.2.1-1.amzn1.x86_64 (mongodb-org-3.2)
Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
Error: Package: mongodb-org-shell-3.2.1-1.amzn1.x86_64 (mongodb-org-3.2)
Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
根据这条消息,我认为我错过了libstdc++.so.6
。所以我运行此命令来安装它:
yum install libstdc++.so.6
我收到了这条消息:
Package libstdc++-4.4.7-16.el6.i686 already installed and latest version
这令人沮丧。为什么会这样?
答案 0 :(得分:2)
你搞砸了你的存储库定义了一下。要么你实际上运行CentOS,在这种情况下你错误地定义了MongoDB的AmazonLinux包的存储库。这是更可能的情况,因为我可以用错误配置的回购重现您的问题。
但是,您有可能在AmazonLinux上运行并定义了CentOS存储库。
问题是您输入了错误的存储库。使用正确的repo时,MongoDB按预期安装并运行。但是,RPM名称不同,如下所示:
最有可能的是,你有一个错误的回购定义,如下所示:
因此,您需要做的是找到定义Amazon Linux存储库的位置并将其替换为正确的位置:
$ grep -l amazon -R /etc/yum.repos.d/*
这里的问题是可能会定义多个存储库。检查grep
命令返回的文件,并删除相应的存储库定义。然后,添加correct repository definition,截至撰写本文时为
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1
必须说
AmazonLinux!= CentOS
它们很接近(均基于RHEL),但不完全相同。具体来说,某些软件包版本可能不同用于编译MongoDB for AmazonLinux的软件包版本记录在RPM中,本文档是软件包和系统之间的契约
我,MongoDB,承诺在具有指定版本的这些软件包的系统上正常运行。
CentOS无法履行的合约。
只需follow the installation instructions for MongoDB on AmazonLinux。
答案 1 :(得分:1)
看起来罪魁祸首是glibc你能试试吗
yum list glibc
看看版本是否符合mongo的预期。欢迎来到依赖地狱:)