MongoDB 无法在 CentOS 6.7 上安装
MongoDB does not install on CentOS 6.7
我是 Windows 人。当我需要使用基于Linux的OS时,我总是选择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
这让人很沮丧。为什么会这样?
看起来罪魁祸首是 glibc 你能试试吗
yum list glibc
并查看版本是否符合 mongo 的预期。欢迎来到依赖地狱:)
您有点搞砸了存储库定义。要么您实际上使用 运行 CentOS,在这种情况下,您错误地为 MongoDB 的 AmazonLinux 软件包定义了存储库。这是更有可能的情况,因为我可以使用配置错误的存储库重现您的问题。
但是,您有可能在 Amazon运行Linux 上定义了 CentOS 存储库。
如果您确定自己确实在使用 CentOS
问题是您输入了错误的存储库。当使用正确的 repo 时,MongoDB 按预期安装和 运行s。但是RPM名称不同,如下图:
很可能,你输入了错误的 repo 定义,如下所示:
因此,您需要做的是找到定义 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
如果您在亚马逊上Linux
误解
不得不说
AmazonLinux != CentOS
它们很接近(都基于 RHEL),但不完全相同。具体来说,某些软件包版本可能不同。用于为 AmazonLinux 编译 MongoDB 的软件包版本记录在 RPM 中,该文档是软件包与系统
之间的某种契约
I, MongoDB, promise to run properly on a system which has these packages in the specified version.
CentOS 无法履行的合约。
解决方案
简直follow the installation instructions for MongoDB on AmazonLinux.
我是 Windows 人。当我需要使用基于Linux的OS时,我总是选择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
这让人很沮丧。为什么会这样?
看起来罪魁祸首是 glibc 你能试试吗
yum list glibc
并查看版本是否符合 mongo 的预期。欢迎来到依赖地狱:)
您有点搞砸了存储库定义。要么您实际上使用 运行 CentOS,在这种情况下,您错误地为 MongoDB 的 AmazonLinux 软件包定义了存储库。这是更有可能的情况,因为我可以使用配置错误的存储库重现您的问题。
但是,您有可能在 Amazon运行Linux 上定义了 CentOS 存储库。
如果您确定自己确实在使用 CentOS
问题是您输入了错误的存储库。当使用正确的 repo 时,MongoDB 按预期安装和 运行s。但是RPM名称不同,如下图:
很可能,你输入了错误的 repo 定义,如下所示:
因此,您需要做的是找到定义 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
如果您在亚马逊上Linux
误解
不得不说
AmazonLinux != CentOS
它们很接近(都基于 RHEL),但不完全相同。具体来说,某些软件包版本可能不同。用于为 AmazonLinux 编译 MongoDB 的软件包版本记录在 RPM 中,该文档是软件包与系统
之间的某种契约I, MongoDB, promise to run properly on a system which has these packages in the specified version.
CentOS 无法履行的合约。
解决方案
简直follow the installation instructions for MongoDB on AmazonLinux.