Malheureusement, le paquet officiel Ubuntu pour MongoDB est toujours bloqué sur la version 2.6, qui est ancienne à ce stade ( ce bogue n’a pas été prise en compte pour les couleurs vives, astucieuses ou xéniales).
MongoDB n'a pas encore publié de paquet pour 16.04 (Xenial), comment puis-je utiliser les paquets 14.04 (Trusty) pour installer MongoDB 3.2+ le 16.04?
C'est un peu un bidouillage mais oui, cela peut être fait. Il faut une étape non documentée pour démarrer le service et (assez bizarrement), à moins que vous ne souhaitiez modifier manuellement la conversion des tâches en amont, vous devez d'abord installer le paquet Ubuntu mongodb
, puis le supprimer pour obtenir un service utilisable. Une installation directe des packages MongoDB ne vous donnera pas de service opérationnel sur une nouvelle version 16.04.
Mise à jour - juillet 2016: Le correctif officiel pour cela (ajout de la prise en charge de 16.04 dans les packages) a été complété dans la branche de développement 3.3 dans le cadre de - SERVER-2304 - et a été publié en tant que backport dans la série 3.2 en tant que élément de 3.2.7 . Par conséquent, si vous utilisez 3.2.7+, vous n'en avez pas besoin et l'installation officielle du paquet MongoDB devrait simplement fonctionner.
Dans tous les cas, après avoir ajouté/supprimé, suivez les instructions habituelles pour 14.04, résumé ici:
# 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
L'installation aboutit et, grâce au paquet Ubuntu, nous disposons de toutes les pièces nécessaires à un service, mais toute tentative de démarrage du service échouera initialement:
$ Sudo service mongodb start
Failed to start mongodb.service: Unit mongodb.service is masked.
Réparer ce n'est pas trop difficile:
$ Sudo systemctl unmask mongodb
Removed symlink /etc/systemd/system/mongodb.service.
Maintenant, nous pouvons activer/démarrer le service, obtenir son statut, etc.
$ 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
Succès - et nous obtenons un pointeur de Nice sur le fichier de configuration actif (qui est dans l'ancien format key=value
, voir ici pour obtenir des exemples dans le format YAML recommandé plus récent).
Remarque: Il y aura en fait deux fichiers de configuration /etc/mongod.conf
et /etc/mongodb.conf
, en raison des légères différences entre les deux packages que nous avons installés. Le service maintenant actif pointe par défaut sur l'ancien format. /etc/mongodb.conf
- vous pouvez basculer en déplaçant/copiant le mongod.conf
vers mongodb.conf
si vous le souhaitez ou simplement éditer directement le fichier.
Une fois démarré, pour tester, connectez-vous à la base de données avec le shell mongo
:
$ 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]
Si vous souhaitez vous débarrasser des avertissements THP, consultez cette réponse .