如何在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