Apt-cache: ¿Cómo enumerar todos los paquetes instalados con el número de versión?

51

apt-cache dump --installed no funciona, también enumera los paquetes desinstalados.

Quiero enumerar los paquetes de instalación cada uno por una línea, con el número de versión instalado.

Xiè Jìléi
fuente
3
bug # 775771 restringe los resultados de búsqueda de apt-cache a los paquetes instalados
bartolo-otrit

Respuestas:

53

tratar dpkg -l

Enumera los paquetes, la versión y una breve descripción.

kev
fuente
1
También me gusta, apt-show-versionsya que también muestra cuál es uptotdate.
Malat
37

La forma más simple es usar dpkg, pero puede mostrar algunos paquetes extraños y truncar los nombres de paquetes largos y los números de versión:

dpkg -l

Para enumerar solo los paquetes instalados correctamente y no truncar nombres:

dpkg -l | grep '^ii'

Para obtener más control sobre el formato de salida, puede usar dpkg-query:

dpkg-query -W -f '${status} ${package} ${version}\n' | \
sed -n 's/^install ok installed //p'
Gilles 'SO- deja de ser malvado'
fuente
13

Otro comando puede ser:

apt-show-versions

También le brinda información sobre el estado del paquete (actualizado, actualizable, ...) y sobre la distribución de origen (wheezy, jessie, ...). Uno puede filtrar fácilmente los paquetes que provienen de puertos u otros depósitos exóticos.

Este programa se empaqueta por separado. Instálelo primero con:

apt-get install apt-show-versions
SkyRaT
fuente
Esto es realmente bueno, ya que muestra la versión a la que se puede actualizar un paquete. +1.
Randall Cook
combinado con apt-mark showmanualesto le brinda una manera agradable y fácil de recuperar versiones de todos los paquetes instalados manualmente, consulte también esta respuesta de Askubuntu apt-mark showmanual > /tmp/versions && apt-show-versions | grep -f /tmp/versions
Gregor
4

El siguiente comando enumera los paquetes con sus versiones y , además, le permite configurar un sistema con los mismos paquetes y versiones más adelante, utilizando el pkg-selections.txtarchivo generado aquí:

aptitude -q -F "%?p=%?V %M" --disable-columns search \~i > pkg-selections.txt

Cada línea contendrá el nombre del paquete, la versión y una "A" opcional si el paquete se instaló automáticamente.

Fuente: " Clonación de un sistema Debian - paquetes y versiones idénticos ". También contiene el script que configura un sistema desde pkg-selections.txt.

Tanius
fuente
4

Para enumerar los nombres de cada paquete instalado, escriba como cualquier usuario:

dpkg --get-selections

Obtendrá una salida como esta:

accountsservice              install
aclinstall                   install
acpi-supportinstall          install
acpidinstall                 install
...

Para eliminar la cadena de caracteres "instalar" innecesaria, puede usar sed :

dpkg --get-selections | sed 's:install$::'

Y si desea guardarlo en un archivo llamado InstalledPackages , escriba esto:

dpkg --get-selections | sed 's:install$::' > InstalledPackages
Rémi G.
fuente
1

Si no tiene acceso al sistema en vivo y tiene una copia de seguridad de la /partición raíz , puede:

root@backup_server /mnt/old_root/var/lib/dpkg/info # ls -la *.list | awk {'print $9'}| sed 's/.list//' >> /root/installed_app

¡Ahora esto /root/installed_appcontiene todos los paquetes instalados!

sasha2002
fuente