El shell de linux: Obtener una lista de los paquetes expresamente instalados en el sistema | Algo de Linux

miércoles, 28 de mayo de 2014

El shell de linux: Obtener una lista de los paquetes expresamente instalados en el sistema

En un post anterior os mostré cómo podemos obtener una lista de todos los paquetes instalados en el sistema utilizando dpkg --get-selections, algo realmente útil para rellenar el fichero musthave de pkgsync y mantener el software uniforme en una serie de equipos. Ahora bien, en esta lista irán incluidos los paquetes que se instalan como dependencias de otros que hayamos instalado explícitamente, como por ejemplo librerías. 

Para instalar los paquetes del sistema, ya sea con pkgsync o dpkg --set-selections, no es necesario especificar la lista de librerías, puesto que, al fin y al cabo, éstas se van a instalar de todos modos, cuando instalemos los paquetes que nosotros queremos.

La forma más óptima de construir la lista de paquetes para pkgsync o dpkg --set-selections es creando una lista en la que se incluyan sólo los paquetes que expresamente queramos instalar. Para construir esta lista, lo mejor es apoyarnos en aptitude, que puede darnos mucha información y usar la siguiente combinación de comandos:

# aptitude show "?installed ?not(?priority(required)) ?not(?essential) ?not(?automatic)" | grep -e ^Package -e ^Paquete | cut -f 2 -d " " | sort > /etc/pkgsync/musthave

Esta combinación obtiene una lista de los paquetes instalados: ?installed , excluyendo:
  • Aquellos paquetes cuya prioridad sea required: ?not(?priority(required)), es decir, paquetes necesarios para el funcionamiento del sistema. 
  • Aquellos paquetes que no sean esenciales: ?not(?essential)
  • Aquellos paquetes no instalados automáticamente: ?not(?automatic)
Para que veáis lo reducida y "limpia" que queda la lista de paquetes, os diré que en un equipo workstation, he obtenido una lista de 682 paquetes de un total de 2372 paquetes instalados.

Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: