mongodb 的官方 Vivitive 包是 2.x,MongoDB 提供的包如下:http://repo.mongodb.org/apt/ubuntu/dists/trusty/仅适用于 LTS 版本。
另一种选择是,我可以切换回 14.04 LTS,但我需要安装 openjdk-8-jdk,它仅适用于 animated。
答案1
如果您使用 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
答案2
使用 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 后,现在当我尝试启动 mongodb 服务时sudo service mongod start
会失败。抛出以下错误消息
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.
以下是我如何解决并正常启动 mongodb
更改 MongoDB 的默认数据存储文件/var/lib/mongodb到/数据/数据库
sudo mkdir -p /data/db
sudo gedit /etc/mongod.conf
并按如下方式更改“dbpath”行代替dbpath=/var/lib/mongodb 到 数据库路径=/数据/数据库然后保存文件。
然后删除旧的默认 /var/lib/mongodb
现在我们必须让所有目录/文件都归 mongod 用户所有
跑步
sudo chown -R mongodb:mongodb /data/db
现在我终于可以用sudo service mongod start
并检查服务是否正在运行sudo systemctl status mongod
- 它应该显示类似下面的消息
Loaded: loaded (/etc/init.d/mongod)
Active: active (running) since Thu 2015-09-03 04:57:49 IST; 7s ago
在我的博客文章。
答案3
正如我之前所说:Debian/Ubuntu 软件包已使用 systemd 服务单元进行修补,以填补直接从 mongodb.org 发布的内容留下的空白。但mongodb.service
WWW 上并不缺少单元文件。编写一个也不难。(我有。)
具体来说:你会发现这样的服务单位在适用于 Ubuntu 版本 15 的 mongodb-server 版本 2.6 软件包. 还有mongodb.org 发布的服务单元确实如此。情况很简单,mongodb.org 的人们错误地将 RPM 的使用与特定于发行版的内容中的 systemd 的使用混为一谈。
请注意,具有讽刺意味的是,mongodb.org 提供的服务单元并不适用mongodb.org 本身推荐的 systemd 服务单元指令。Debian/Ubuntu 提供的也没有。但是,再说一遍:使用这些指令的手写服务单元并不难编写;或者实际上修改以添加像 numactl 这样的东西。☺
进一步阅读
答案4
作为@AB 优秀答案的简短补充。在 Vivid amd64 上,使用先前安装的 mongod 2.6.26,只需用替换现有sources.list.d
文件即可
deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse
随后 dist-grade 自动运行。
sudo apt-get update
sudo apt-get dist-upgrade