En este articulo voy a hablaros de funcionalidades avanzadas de dpkg en entornos de servidores . Como todos sabemos, dpkg es la herramienta utilizada en sistemas Debian y derivados para la gestión de paquetes. Pues bien, esta herramienta nos ofrece mas funcionalidades, entre ellas la que os voy a comentar a continuación: Imaginémonos que somos administradores y tenemos un servidor al cual deben entrar por acceso ssh diversos perfiles técnicos de nuestra empresa para su manipulación. Nosotros como administradores queremos que este servidor se conserve en el estado que nosotros hemos dejado de paquetería, ya que estos “técnicos” cada vez que acceden pueden instalar paquetería “sobrante” y no la eliminan. Es por eso que nos hemos propuesto controlar la paquetería del sistema, analizando de forma automática que si existe un paquete que no queremos, se eliminará de forma automática. Para hacerlo seguiremos los siguientes pasos:

  1. Instalar el servidor e instalar la paquetería que nosotros consideremos necesaria.

  2. Una vez dejado en su estado final, utilizaremos dpkg para crear un fichero donde se guardará el estado actual del mismo, es decir, la paquetería que nos interesa tener instalada:
    # dpkg --get-selections > state_final_packages.list
    

  3. Este fichero lo debemos guardar en un lugar seguro , a ser posible dándole atributos para que no pueda ser destruido (CONCURSO: ¿Alguno sabe como hacer esto?? El primero que ponga la solución en los comentarios será incluido en este apartado del artículo junto a su solución!!)

  4. Cuando queramos restaurar la paquetería , primero debemos limpiar la caché de dpkg de paquetes seleccionados:
    # dpkg --clear-selections

  5. Ahora cargamos la lista de paquetes que debe estar instalada, haciéndole saber al sistema que todo lo que sobre de esta lista lo elimine:
    # dpkg --set-selections < state_final_packages.list

  6. Para acometer los cambios , utilizamos eldo apt-get con los siguientes parámetros:
    # apt-get -u dselect-upgrade

Y con esto conseguiremos que se desinstale todo el software sobrante , manteniendo así el control de la paquetería del servidor. Este sistema se podría generar en un script y meterlo en cron para que fuese una tarea programada que se ejecutara todos los días, por ejemplo. En fin, espero que os haya gustado y os sirva ;) Un saludo y esperamos el ganador del concurso!! :D