Je souhaite obtenir la liste des packages de bibliothèque installés uniquement à partir du terminal.
Y a-t-il une commande pour cela?
la source
Je souhaite obtenir la liste des packages de bibliothèque installés uniquement à partir du terminal.
Y a-t-il une commande pour cela?
/sbin/ldconfig -p
L'option -v affichera la version des bibliothèques.
Résultat:
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 vous souhaitez transformer cette liste en une liste de packages , vous pouvez faire quelque chose comme ceci:
dpkg -S $(/sbin/ldconfig -p | awk 'NR>1 { print $NF }')
Et vous pouvez masser davantage pour éliminer les erreurs, les composants inutiles et les doublons:
$ 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
...
Je ne suis pas sûr qu'il existe un moyen garanti de savoir à partir d'un nom de package qu'un package est une "bibliothèque" (si c'est même une définition solide en soi), mais vous pouvez trouver des packages installés qui commencent et se terminent lib
assez facilement:
dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) { print $2 }'
Certains packages contiennent des "lib" qui ne sont pas des bibliothèques. Vous devrez probablement exclure librarian
et libreoffice
de ceux-ci:
dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) && ($2 !~ /^(libreoffice|librarian)/) { print $2 }'
Cela va encore manquer une pénurie de python-...
bibliothèques.
Et l'aptitude est venue à la rescousse:
aptitude search '?and(?section(libs), ~i)'
Il se lit comme suit: cherche des paquets qui contiennent libs
dans leur ?section
et qui sont installés ( ~i
).
Vous pouvez l'utiliser pour rechercher uniquement toutes les bibliothèques de votre référentiel:
aptitude search '?section(libs)'
Cette méthode a évidemment besoin d'aptitude.