Product SiteDocumentation Site

6.9. Actualizaciones automáticas

Dado que Falcot Corp tiene muchas máquinas pero personal limitado, sus administradores intentan hacer las actualizaciones tan automáticas como sea posible. Los programas a cargo de esos procesos deben, por lo tanto, ejecutar sin intervención humana.

6.9.1. Configuración de dpkg

As we have already mentioned (see sidebar YENDO MÁS ALLÁ Evitando preguntas sobre los archivos de configuración), dpkg can be instructed not to ask for confirmation when replacing a configuration file (with the --force-confdef --force-confold options). Interactions can, however, have three other sources: some come from APT itself, some are handled by debconf, and some happen on the command line due to package configuration scripts (sometimes handled by ucf).

6.9.2. Configuración de APT

En el caso de APT es simple: la opción -y (o --asume-yes) le indica a APT que considere que la respuesta a todas las preguntas será afirmativa («yes»).

6.9.3. Configuración de debconf

El caso de debconf merece más detalles. El programa fue diseñado, desde su concepción, para controlar la relevancia y volúmen de las preguntas mostradas al usuario así como también la forma en la que se mostrarán. Es por esto que su configuración requiere una prioridad mínima para las preguntas; sólo se mostrarán las preguntas sobre la prioridad mínima. debconf asume la respuesta predeterminada (definida por el encargado del paquete) para las preguntas que decidió evitar.
Los otros elementos de configuración relevantes es la interfaz utilizada. Si selecciona la opción noninteractive, se desactivará toda interacción con el usuario. Si un paquete intenta mostrar una nota informativa, ésta será enviada al administrador por email.
Para reconfigurar debconf utilice dpkg-reconfigure del paquete debconf; la orden necesaria es dpkg-reconfigure debconf. Es importante saber que, si es necesario, los valores configurados pueden sobreescribirse temporalmente con variables de entorno (por ejemplo DEBIAN_FRONTEND controla la interfaz, como está documentado en la página de manual debconf(7)).

6.9.4. Manejo de interacciones de línea de órdenes

La última fuente de interacciones, y la más difícil de la que deshacerse, son los scripts de configuración ejecutados por dpkg. Desafortunadamente no hay solución estándar y ninguna respuesta es mucho mejor que la otra.
El enfoque común es eliminar la entrada estándar redireccionando hacia ella el contenido vacío de /dev/null con programa </dev/null o proveerle un flujo interminable de caracteres de nueva línea. Ninguno de estos métodos es 100% fiable, pero generalmente provocan que se utilicen las respuestas predeterminadas, ya que la mayoría de los scripts consideran una falta de respuesta como aceptación del valor predeterminado.

6.9.5. La combinación milagrosa

Combinando los elementos anteriores es posible diseñar un script pequeño pero confiable que pueda realizar actualizaciones automáticas.

Ejemplo 6.5. Script de actualización no-interactivo

export DEBIAN_FRONTEND=noninteractive
yes '' | apt-get -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" dist-upgrade