Voglio ottenere l'elenco dei pacchetti di libreria installati solo dal terminale.
C'è qualche comando per quello?
Voglio ottenere l'elenco dei pacchetti di libreria installati solo dal terminale.
C'è qualche comando per quello?
Risposte:
/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
...
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.
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.