start - unable to locate package mongodb-org
Ejecutando mongodb en ubuntu 16.04 LTS (4)
¿Cómo puedo ejecutar Mongodb, como un servicio, en Ubuntu 16.04 LTS? Hace unos días tuve la actualización de mi servidor a Ubuntu 16.04. Me di cuenta de que mi servicio MongoDB no se inicia cuando reinicio. Tratando de usar
sudo initctl start mongod
No hizo el truco. Alguien tiene una idea de cómo resolver esto?
Para las personas que quieren una instalación nueva
He estado luchando con esto por 1 hora. Luego encontré esta página Instalar es tan fácil como hacerlo:
sudo apt-get update
sudo apt-get install mongodb
Luego, para verificar si todo funciona:
sudo service mongodb status
¡Hazme saber si esto funciona para ti!
Cualquiera que actualice o instale Ubuntu 16.04 (también conocido como Ubuntu Xenial xerus) notó que algunos de los viejos servicios dejaron de ejecutarse. Este problema se conoce a partir de la versión 15.04, pero me centraré en la versión anterior.
Tal fue mi caso con MongoDB. Para hacer una historia larga, corta, Ubuntu cambió de upstart a systemd. Una solución común, para estos problemas, es volver al advenedizo. No considero esa opción como una solución real, ciertamente no a largo plazo.
Una solución real (en mi humilde opinión) para el problema es escribir el script systemd que iniciará MongodDB. Desafortunadamente, los muchachos de MongoDB todavía tenían que suministrar uno.
Así que tuve que escribir uno desde cero. Para crear uno propio, siga estos pasos:
- cambiar a la raíz usando
sudo su
o use sudo para todos los siguientes pasos.
crear un script de servicio (en este ejemplo, el nombre del servicio es Mongodb)
nano /lib/systemd/system/mongodb.service
El contenido del archivo debe ser
[Unit] Description=MongoDB Database Service Wants=network.target After=network.target [Service] ExecStart=/usr/bin/mongod --config /etc/mongod.conf ExecReload=/bin/kill -HUP $MAINPID Restart=always User=mongodb Group=mongodb StandardOutput=syslog StandardError=syslog [Install] WantedBy=multi-user.target
También puede descargar el archivo desde aquí: mongodb.service
Aquí hay una descripción rápida de los campos importantes:
ExecStart - Es el comando para ejecutar. Mongo se instala en / usr / bin y el archivo de configuración está escrito en / etc
Usuario : el fluido del proceso mongod.
Grupo - El regalo del proceso de mongod. Tenga en cuenta que el usuario y el grupo son creados por la instalación.
Ahora para comenzar mongodb:
sudo systemctl start mongodb
Para detener el uso del servicio mongodb:
sudo systemctl stop mongodb
Para habilitar mongodb en el inicio
sudo systemctl enable mongodb.service
Si necesita actualizar los servicios, use:
sudo systemctl daemon-reload
La última versión de MongoDB hace la mayoría de las cosas, excepto una por ahora. Después de instalar MongoDB
en Ubuntu 16.04.x
, ejecute los comandos de la siguiente manera:
$ sudo systemctl enable mongod.service
$ sudo systemctl daemon-reload
Ahora lo más probable es que mongod
comience automáticamente en cada arranque.
Esta solución también funciona en caso de obtener este error:
Error al iniciar mongod.service: Unidad mongod.service no encontrada.
Después de ejecutar los comandos anteriores, los siguientes comandos comienzan a funcionar:
$ sudo service mongod start
$ mongo
Del mismo modo, todos los servicios instalados deben estar habilitados para ejecutarse. Por ejemplo, después de la instalación de Ops Manager (también conocido como MMS), la documentación dice que ejecute el comentario a continuación.
$ sudo systemctl start mongodb-mms.service
Lo más probable es que Ubuntu no inicie el servicio. Porque aún no está habilitado. Para habilitarlo, simplemente ejecute el siguiente comando:
$ sudo systemctl enable mongodb-mms.service
$ sudo systemctl daemon-reload
Luego intente iniciar el servicio:
$ sudo systemctl enable mongodb-mms.service
Eso es todo...
Los paquetes para 3.2+ contienen scripts advenedizos.
Primero, siga las instrucciones oficiales para instalar :
# If you installed the ubuntu package, remove it, if not skip to key import
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 package
sudo apt-get install -y mongodb-org
Luego desenmascarar el trabajo mongodb.service
(y habilitarlo e iniciarlo). Creo que estaba enmascarado porque el paquete también incluye trabajos advenedizos, por lo que no querría que los dos comenzaran. En nuestro caso, sin embargo, esto es claramente lo que queremos.
sudo systemctl unmask mongodb
sudo service mongodb enable
sudo service mongodb start
Referencias