如何在Vivid中安装MongoDB 3.0?

mongodb的官方生动包是2.x,MongoDB在http://repo.mongodb.org/apt/ubuntu/dists/trusty/上提供的软件包仅适用于LTS版本。

另一种方法是我可以切换回14.04 LTS,但是我需要安装openjdk-8-jdk,它只能用于生动。

如果您使用Trusty软件包,MongoDB可能无法启动:

Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory. 

在这种情况下,请按照最后所述安装Debian Wheezy软件包。

安装Trusty DEB包

下载DEB文件

 cd wget http://repo.mongodb.org/apt/ubuntu/dists/trusty/mongodb-org/3.0/multiverse/binary-amd64/mongodb-org-mongos_3.0.3_amd64.deb wget http://repo.mongodb.org/apt/ubuntu/dists/trusty/mongodb-org/3.0/multiverse/binary-amd64/mongodb-org-server_3.0.3_amd64.deb wget http://repo.mongodb.org/apt/ubuntu/dists/trusty/mongodb-org/3.0/multiverse/binary-amd64/mongodb-org-shell_3.0.3_amd64.deb wget http://repo.mongodb.org/apt/ubuntu/dists/trusty/mongodb-org/3.0/multiverse/binary-amd64/mongodb-org-tools_3.0.3_amd64.deb wget http://repo.mongodb.org/apt/ubuntu/dists/trusty/mongodb-org/3.0/multiverse/binary-amd64/mongodb-org_3.0.3_amd64.deb 

并按(按此顺序)安装

 sudo dpkg -i mongodb-org-server_3.0.3_amd64.deb sudo dpkg -i mongodb-org-tools_3.0.3_amd64.deb sudo dpkg -i mongodb-org-shell_3.0.3_amd64.deb sudo dpkg -i mongodb-org-mongos_3.0.3_amd64.deb sudo dpkg -i mongodb-org_3.0.3_amd64.deb 

并从评论中获取,谢谢@ Pilot6 :

他们可能彼此依赖。 这就是为什么逐个安装包可能会出错。 我建议sudo dpkg -i mongodb*.deb


使用Trusty PPA

 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list sudo apt-get update sudo apt-get install -y mongodb-org 

使用Debian Wheezy包

如果您使用Trusty软件包,MongoDB可能无法启动:

 Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory. 

在这种情况下,请按照以下说明安装Debian Wheezy软件包

 sudo apt-get remove mongodb-org sudo apt-get autoremove sudo rm /etc/apt/sources.list.d/mongodb-org-3.0.list sudo echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list sudo apt-get update sudo apt-get install -y mongodb-org 

使用debian wheezy存储库在我的Ubuntu 15.04中成功安装了mongo 3.0.6版 – 见下面的步骤

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

sudo apt-get update

sudo apt-get install -y mongodb-org

但是,在上面的所有步骤和mongodb安装在我的机器上之后,现在当我尝试使用sudo service mongod start mongodb服务时,它会失败。 抛出以下错误消息

Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

所以这就是我如何解决和正常启动mongodb

  • 将MongoDB的默认数据存储文件从/ var / lib / mongodb更改为/ data / db

  • sudo mkdir -p /data/db

  • sudo gedit /etc/mongod.conf并更改“dbpath”行,如下所示

  • dbpath = / var / lib / mongodb替换 dbpath = / data / db ,然后保存该文件。

  • 然后删除旧的默认/ var / lib / mongodb

  • 现在我们必须使mongod用户拥有所有目录/文件

  • 运行sudo chown -R mongodb:mongodb /data/db

现在终于可以用sudo service mongod start启动mongo了

并且chcek服务正在运行sudo systemctl status mongod – 它应该显示类似于下面的消息

Loaded: loaded (/etc/init.d/mongod)

Active: active (running) since Thu 2015-09-03 04:57:49 IST; 7s ago

在我的博客文章中详细介绍了我的步骤。

正如我之前所说:Debian / Ubuntu软件包已经使用systemd服务单元修补,以填补直接从mongodb.org发布的内容留下的漏洞。 但是WWW上的mongodb.service单元文件并不缺乏。 写一个也不难。 (我有。)

具体来说:你会在Ubuntu 15版的mongodb-server 2.6版包中找到这样的服务单元 。 确实,还有一个由mongodb.org发布的服务单元 。 简而言之,mongodb.org人员错误地将RPM的使用与特定于发行版的东西中使用systemd混为一谈。

请注意,具有讽刺意味的是,mongodb.org提供的服务单元不应用mongodb.org自己推荐的systemd服务单元指令 。 Debian / Ubuntu提供的也不是。 但是,再说一次:手写的服务单元有这些指令并不难写; 或者确实要修改以添加像numactl这样的东西。 ☺

进一步阅读

那么AB的答案都没有奏效。 所以我唯一的选择是从tarball安装

关注与此主题相关的文档说明。

作为@ AB的优秀答案的简短附加。 在生动的amd64上,使用之前安装的mongod 2.6 .26,只需用现有的sources.list.d文件替换即可

 deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse 

随后是dist-upgrade自动工作。

 sudo apt-get update sudo apt-get dist-upgrade