Quiero obtener la lista de paquetes de biblioteca instalados solo desde la terminal.
¿Hay algún comando para eso?
fuente
Quiero obtener la lista de paquetes de biblioteca instalados solo desde la terminal.
¿Hay algún comando para eso?
/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
...
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 lib
bastante facilidad:
dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) { print $2 }'
Algunos paquetes contienen "lib" que no son bibliotecas. Probablemente deba excluir librarian
y libreoffice
de 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.
Y la aptitud vino al rescate:
aptitude search '?and(?section(libs), ~i)'
Se lee: busca los paquetes que contiene libs
en su ?section
y 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.