Instalar paquetes que requieren respuesta del usuario de forma desatendida | Algo de Linux

jueves, 16 de mayo de 2013

Instalar paquetes que requieren respuesta del usuario de forma desatendida

A veces queremos instalar un paquete que requiere respuestas por parte del usuario para su instalación, pero queremos que la instalación se realice de forma desatendida. 

Una forma de solucionar este problema es usar preseed, es decir: preestablecer las respuestas en un archivo, det tal manera que al realizar la instalación, el sistema no pregunte al usuario.

Vamos a ver cómo podemos conseguirlo con un ejemplo:

Imaginemos que queremos instalar el paquete ocsinventory-agent de forma desatendida en una serie de clientes, sabiendo que este paquete pregunta al usuario qué método va a usar para inventariar el cliente (local o http), y, en caso de que se elija http, también preguntará la IP del servidor de inventariado.

Lo primero que necesitamos tener instalado es el paquete debconf-utils. Así que, si no lo tenemos instalado aún, lo instalamos:

# apt-get install debconf-utils

Una vez que tenemos las herramientas, instalamos el paquete en cuestión (en el ejemplo: ocsinventory-agent) normalmente:

# apt-get install ocsinventory-agent

Nos hará las preguntas de configuración. Las respondemos con los datos que queramos configurar.

Una vez instalado, ejecutamos el comando debconf-get-selections, de manera que filtremos las preguntas y respuestas del paquete que acabamos de instalar y las almacenemos en un fichero.

Siguiendo con el ejemplo:

# debconf-get-selections | grep ocsinventory-agent > ocsinventory-agent.seed

Si ahora quisiéramos instalar el paquete ocsinventory-agent en un cliente, sin que nos hiciera las preguntas, no tendríamos más que ejecutar los siguientes comandos:

# debconf-set-selections ocsinventory-agent.seed && apt-get -y install ocsinventory-agent 

Y eso es todo. Sencillo, ¿verdad?

2 comentarios:

Anónimo dijo...

Una pregunta, ¿no habría que pasar antes el fichero ocsinventory-agent.seed al cliente para que el cliente sepa que hacer cuando se ejecute la instalación de ocsinventory-agent?

Un saludo

Esteban M. Navas Martín dijo...

Por supuesto. Tendrías que copiar el archivo ocsinventory-agent.seed al cliente antes de ejecutar el comando de instalación:

# debconf-set-selections ocsinventory-agent.seed && apt-get -y install ocsinventory-agent