¿Cómo le pido a apt-get que omita todos los pasos de configuración posteriores a la instalación?

11

Al instalar algunos paquetes (como RabbitMQ) en máquinas Debian / Ubuntu, el post-installpaso predeterminado es iniciar el servicio.

Si bien esto es excelente en la mayoría de los casos, en algunos casos (cuando ya tiene un servicio ejecutándose en el puerto necesario, por ejemplo) esto falla, lo que hace que apt-getfalle por completo.

¿Hay alguna manera de decir apt-getque omita todos esos post-installpasos para que aún pueda instalarse correctamente?

Nota No se trata de preguntas durante la instalación, incluso en sesiones interactivas estas instalaciones fallan porque el post-installpaso falla no se maneja correctamente

Wolph
fuente
1
Esa pregunta es similar pero diferente. Se trata de omitir todos los pasos, no solo los interactivos. Algunas tareas ejecutan automáticamente scripts que no siempre se desean.
Wolph

Respuestas:

8

¿Cómo le pido a apt-get que omita los pasos interactivos de configuración posteriores a la instalación?

export DEBIAN_FRONTEND=noninteractive
apt-get install -y [packagename]

Editar : sí, eso fue para omitir (bueno, automatizar) las preguntas posteriores a la instalación , cierto, lo siento.

No hay forma de omitir los scripts posteriores a la instalación . La política oficial de Debian es editar el script para devolver un error no terminal o corregir el script. Ver http://www.debian-administration.org/articles/251

Parece que está automatizando esto para muchos servidores, en cuyo caso, es probable que desee crear su propia versión del paquete e implementarlo. Otra opción es enviar un correo electrónico al mantenedor del paquete y analizar si un fallo de inicio debería ser un error de terminal para la instalación posterior (no creo que sea para otros paquetes como apache o lighttpd, por ejemplo, pero podría estar equivocado .)

Brett Dikeman
fuente
Eso es solo para saltear pasos interactivos. Ese no es el problema aquí, estos son los post-installpasos no interactivos que fallan si algo como service rabbitmq-server startfalla.
Wolph el
Actualizado. ¿Eso ayuda?
Brett Dikeman el
lo hace, mejor saber que no es posible que preguntarse si es :) Gracias por la ayuda.
Wolph
Si está usando sudo, la exportación de la variable de entorno no funcionará, pero puede hacerlo de esta manera:sudo DEBIAN_FRONTEND=noninteractive apt-get -y [packagename]
aculich
4

Lo que puede querer hacer es algo con la política-rc.d . Consulte la página del manual para invoke-rc.d. Puede establecer una política para que los servicios no se inicien automáticamente.

Zoredache
fuente
Esa es una forma de evitarlo, pero supongo que sería una medida temporal. Al menos ... Creo que de esa manera deshabilitaría globalmente todos los inicios de servicio.
Wolph el
2

Esto debería funcionar

echo exit 101 > /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
apt-get install <packagename>
rm -f /usr/sbin/policy-rc.d
Diego Roccia
fuente
Un poco hacky y muy específico para este caso, ¡pero ayuda mucho! Gracias :)
Wolph