¿Cómo obtener la lista de paquetes de biblioteca instalados únicamente?


12

Quiero obtener la lista de paquetes de biblioteca instalados solo desde la terminal.

¿Hay algún comando para eso?

Respuestas:


17
/sbin/ldconfig -p

La opción -v mostrará la versión de las bibliotecas.

Resultado:

267 libs found in cache `/etc/ld.so.cache'
        libz.so.1 (libc6) => /usr/lib/libz.so.1
        libz.so (libc6) => /usr/lib/libz.so
        libxslt.so.1 (libc6) => /usr/lib/libxslt.so.1
        libxml2.so.2 (libc6) => /usr/lib/libxml2.so.2
        libxcb.so.1 (libc6) => /usr/lib/libxcb.so.1
        libxcb-xlib.so.0 (libc6) => /usr/lib/libxcb-xlib.so.0
        libwrap.so.0 (libc6) => /lib/libwrap.so.0
        libvolume_id.so.0 (libc6) => /lib/libvolume_id.so.0
        libuuid.so.1 (libc6) => /lib/libuuid.so.1
        libutil.so.1 (libc6, hwcap: 0x8008000000008000, OS ABI: Linux 2.6.8) => /lib/tls/i686/cmov/libutil.so.1
        libutil.so.1 (libc6, OS ABI: Linux 2.6.8) => /lib/libutil.so.1
        libutil.so (libc6, OS ABI: Linux 2.6.8) => /usr/lib/libutil.so
        libusb-0.1.so.4 (libc6) => /lib/libusb-0.1.so.4
        libusb-0.1.so.4 (libc6) => /usr/lib/libusb-0.1.so.4
        libulockmgr.so.1 (libc6) => /lib/libulockmgr.so.1
        libt1x.so.5 (libc6) => /usr/lib/libt1x.so.5
        libt1.so.5 (libc6) => /usr/lib/libt1.so.5
        libtiff.so.4 (libc6) => /usr/lib/libtiff.so.4
        libticw.so.5 (libc6) => /lib/libticw.so.5

Si desea convertir esa lista en una lista de paquetes , puede hacer algo como esto:

dpkg -S $(/sbin/ldconfig -p | awk 'NR>1 { print $NF }')

Y puede dar un masaje adicional para eliminar errores, componentes innecesarios y duplicados:

$ dpkg -S $(/sbin/ldconfig -p | awk 'NR>1 { print $NF }') 2>/dev/null | sed 's/\: .*$//' | sort -u
akregator
ark
binutils
calligra-libs
comerr-dev
compiz-core
dolphin
e2fslibs:amd64
freeglut3:amd64
gettext
...

2

No estoy seguro de que haya una forma garantizada de saber por un nombre de paquete que un paquete es una "biblioteca" (si es una definición sólida en sí misma), pero puede encontrar paquetes instalados que comienzan y terminan con libbastante facilidad:

dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) { print $2 }'

Algunos paquetes contienen "lib" que no son bibliotecas. Probablemente deba excluir librariany libreofficede esos:

dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) && ($2 !~ /^(libreoffice|librarian)/) { print $2 }'

Esto todavía va a perder una escasez de python-...bibliotecas.


1

Y la aptitud vino al rescate:

aptitude search '?and(?section(libs), ~i)'

Se lee: busca los paquetes que contiene libsen su ?sectiony que están instalados ( ~i).

Puede usar esto para buscar todas las bibliotecas en su repositorio:

aptitude search '?section(libs)'

Este método obviamente necesita aptitud.


Tenga en cuenta que esto funcionará si los paquetes cumplen con las políticas de Debian. Si una biblioteca no está en la sección de la biblioteca, entonces no se incluirá, incluso si es una biblioteca.
Braiam
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.