Como obter apenas a lista de pacotes de bibliotecas instaladas?

9

Eu quero obter a lista de pacotes de bibliotecas instaladas somente no terminal.

Existe algum comando para isso?

    
por Avinash Raj 14.03.2014 / 12:57

3 respostas

14
/sbin/ldconfig -p

A opção -v mostrará a versão das 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

Se você quiser transformar essa lista em uma lista de pacotes , você pode fazer algo assim:

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

Além disso, você pode fazer mais massagens para eliminar erros, componentes desnecessários e duplicatas:

$ 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
...
    
por Rinzwind 14.03.2014 / 13:23
2

Não sei se há uma maneira garantida de saber, a partir do nome do pacote, que um pacote é uma "biblioteca" (se é uma definição sólida), mas é possível encontrar pacotes instalados que começam e terminam com lib com bastante facilidade:

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

Alguns pacotes contêm "lib" que não são bibliotecas. Você provavelmente precisará excluir librarian e libreoffice daqueles:

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

Isso ainda vai perder a falta de bibliotecas python-... .

    
por Oli 14.03.2014 / 13:28
1

E a aptidão veio para o resgate:

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

Ele lê: procura por pacotes que contenham libs em seus ?section e que estejam instalados ( ~i ).

Você pode usar isso para procurar apenas todas as bibliotecas do seu repositório:

aptitude search '?section(libs)'

Este método obviamente precisa de aptidão.

    
por Braiam 14.03.2014 / 13:33