Lista de paquetes de un linux

Sea linux una instancia de un sistema operativo GNU/Linux. En este caso debe usar apt, propio de Debian y derivados.

Si queremos la lista de los paquetes instalados en un sistema, es muy fácil:

dpkg --get-selections

El problema es que ahí se listan todos los que están instalados. Lo que queremos es listar todos los paquetes que no se han instalado automáticamente como dependencias, es decir, paquetes necesarios para que funcionen los que hemos instalado a mano con aptitude install para instalarlos en un sistema limpio, recién instalado, quizás de otra versión. De esta forma duplicamos un sistema sin copiarlo.

Por supuesto, hay que usar estas cosas con cuidado y con mucha calma, entendiendo lo que se hace. Un paso en falso y hay que reinstalar o solucionar un “lío muy gordo”. No me hago responsable. Probadlo, pero los experimentos con gaseosa…

En ese caso lo que haremos es contar las líneas que devuelve apt-cache rdepends. Si son dos, es que ese paquete no depende de ningún otro, y es el programa principal. Esto lo vi en Barrapunto, gracias…

dpkg --get-selections | grep "\binstall\$" | cut -f 1 | while read f ; do c=$(apt-cache rdepends "$f" --installed | wc -l) ; if (($c == 2)) ; then echo -e "$f" ; fi ; done

Se puede redireccionar a un fichero y guardarlo, y pasarlo con una tubería por xargs para tenerlo en una línea y pegárselo a un aptitude install, o se puede hacer más elegantemente aunque no tan eficiente:

cat precise120517.txt | while read f; do aptitude install $f ; done

Queda como ejercicio para el alumnado el análisis de la sentencia anterior (es decir, habría que explicar demasiado para entenderlo sin conocimientos previos).

Otras instrucciones que se pueden usar son (cuidado con las comillas y los guiones al copiar código de una web):

deborphan --guess-all

apt-get autoremove --purge `deborphan`

dpkg -P `dpkg -l | grep -i ^r | cut -f 3 -d ' '`

Deje una respuesta

 

 

 

Puedes utilizar estos tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>