我可以使用16.04的14.04 MongoDB软件包吗?

不幸的是,MongoDB的官方Ubuntu软件包仍然停留在2.6,这在这一点上很古老( 这个bug没有被生动,狡猾或者xenial所取代)。

MongoDB尚未发布16.04(Xenial)的软件包,那么如何在16.04上使用14.04(Trusty)软件包安装MongoDB 3.2+?

这是一个黑客,但是,这可以做到。 实际启动服务需要一个未记录的步骤(非常奇怪),除非你想手动进行新手工作转换,你需要先安装Ubuntu mongodb软件包,然后将其删除,以便你有一个可用的服务。 直接安装MongoDB软件包不会为您提供全新的16.04上的工作服务

更新 – 2016年7月:官方修复此问题(添加对软件包的16.04支持)已在3.3 dev分支中作为SERVER-23043的一部分完成 – 并已作为3.2的一部分在3.2系列中作为后端发布。 7 。 因此,如果您使用3.2.7+,则不需要执行此操作,并且官方MongoDB软件包安装应该可以正常工作。

在任何情况下,在执行添加/删除后,请按照14.04 的常规说明进行操作,总结如下:

 # install the Ubuntu package (to get the service set up correctly) sudo apt-get install mongodb # Now remove it and continue with the MongoDB instructions sudo apt-get remove mongodb sudo apt-get autoremove # import key sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 # add trusty repos echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list # update apt sudo apt-get update # install the MongoDB package sudo apt-get install -y mongodb-org 

安装成功,并且由于Ubuntu软件包,我们拥有服务所需的所有部分,但尝试启动服务最初会失败:

 $ sudo service mongodb start Failed to start mongodb.service: Unit mongodb.service is masked. 

解决这个问题并不难:

 $ sudo systemctl unmask mongodb Removed symlink /etc/systemd/system/mongodb.service. 

现在我们可以启用/启动服务,获取其状态等。

 $ sudo service mongodb enable $ sudo service mongodb start $ sudo service mongodb status ● mongodb.service - LSB: An object/document-oriented database Loaded: loaded (/etc/init.d/mongodb; bad; vendor preset: enabled) Active: active (running) since Thu 2016-04-14 16:40:35 IST; 7s ago Docs: man:systemd-sysv-generator(8) Process: 2849 ExecStart=/etc/init.d/mongodb start (code=exited, status=0/SUCCESS) Main PID: 1593 (code=exited, status=0/SUCCESS) Tasks: 13 (limit: 512) Memory: 51.9M CPU: 100ms CGroup: /system.slice/mongodb.service └─2861 /usr/bin/mongod --config /etc/mongodb.conf 

成功 – 我们得到一个指向活动配置文件的好指针(它采用旧的key=value格式,请参阅此处以较新推荐的YAML格式示例)。

注意:由于我们安装的两个软件包之间存在细微差别,实际上会有两个配置文件/etc/mongod.conf/etc/mongodb.conf 。 现在活动的服务默认/etc/mongodb.conf旧格式的服务/etc/mongodb.conf – 如果您愿意,可以通过将mongod.conf移动/复制到mongod.confmongodb.conf ,或者直接编辑文件。

一旦启动,要测试,使用mongo shell连接到数据库:

 $ mongo MongoDB shell version: 3.2.5 connecting to: test Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user Server has startup warnings: 2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] 2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] 2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] 2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] 2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2016-04-14T16:40:34.962+0100 I CONTROL [initandlisten] 

如果您想摆脱THP警告,请查看此答案 。

如果您已经安装了它,请删除mongodb:

 sudo apt-get remove mongodb sudo apt-get autoremove 

尝试使用digitalocean https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-16-04