Come ottenere l'elenco dei soli pacchetti di libreria installati?


12

Voglio ottenere l'elenco dei pacchetti di libreria installati solo dal terminale.

C'è qualche comando per quello?

Risposte:


17
/sbin/ldconfig -p

L'opzione -v mostrerà la versione delle librerie.

Risultato:

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 vuoi trasformare quell'elenco in un elenco di pacchetti , puoi fare qualcosa del genere:

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

E puoi massaggiarlo ulteriormente per eliminare errori, componenti non necessari e duplicati:

$ 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

Non sono sicuro che ci sia un modo garantito per sapere dal nome di un pacchetto che un pacchetto è una "libreria" (se questa è anche una definizione solida in sé) ma puoi trovare pacchetti installati che iniziano e finiscono in modo libabbastanza semplice:

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

Alcuni pacchetti contengono "lib" che non sono librerie. Probabilmente dovrai escludere librariane libreofficeda quelli:

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

Questo mancherà ancora di una carenza di python-...biblioteche.


1

E l'attitudine venne in soccorso:

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

Si legge: cerca i pacchetti che contengono libsnei loro ?sectione che sono installati ( ~i).

Puoi usarlo per cercare solo tutte le librerie nel tuo repository:

aptitude search '?section(libs)'

Questo metodo ha ovviamente bisogno di attitudine.


Nota, questo funzionerà se i pacchetti sono conformi alle politiche Debian. Se una libreria non si trova nella sezione della libreria, non verrà inclusa, anche se si tratta di una libreria.
Braiam
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.