Saya ingin mendapatkan daftar paket pustaka yang diinstal hanya dari terminal.
Apakah ada perintah untuk itu?
sumber
Saya ingin mendapatkan daftar paket pustaka yang diinstal hanya dari terminal.
Apakah ada perintah untuk itu?
/sbin/ldconfig -p
Opsi -v akan menampilkan versi libraries.
Hasil:
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
Jika Anda ingin mengubah daftar itu menjadi daftar paket , Anda dapat melakukan sesuatu seperti ini:
dpkg -S $(/sbin/ldconfig -p | awk 'NR>1 { print $NF }')
Dan Anda dapat memijatnya lebih lanjut untuk menghilangkan kesalahan, komponen yang tidak dibutuhkan, dan duplikat:
$ 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
...
Saya tidak yakin ada cara yang dijamin untuk mengetahui dari nama paket bahwa paket adalah "pustaka" (jika itu sendiri definisi yang kuat), tetapi Anda dapat menemukan paket yang diinstal yang dimulai dan diakhiri dengan lib
cukup mudah:
dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) { print $2 }'
Beberapa paket berisi "lib" yang bukan perpustakaan. Anda mungkin harus mengecualikan librarian
dan libreoffice
dari mereka:
dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) && ($2 !~ /^(libreoffice|librarian)/) { print $2 }'
Ini masih akan kehilangan kelangkaan python-...
perpustakaan.
Dan bakat datang untuk menyelamatkan:
aptitude search '?and(?section(libs), ~i)'
Bunyinya: mencari paket yang berisi libs
di dalamnya ?section
dan yang diinstal ( ~i
).
Anda dapat menggunakan ini untuk mencari semua perpustakaan di repositori Anda:
aptitude search '?section(libs)'
Metode ini jelas membutuhkan kemampuan.