Bagaimana cara mendapatkan daftar paket pustaka yang diinstal saja?

12

Saya ingin mendapatkan daftar paket pustaka yang diinstal hanya dari terminal.

Apakah ada perintah untuk itu?

Avinash Raj
sumber

Jawaban:

17
/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
...
Rinzwind
sumber
2

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 libcukup mudah:

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

Beberapa paket berisi "lib" yang bukan perpustakaan. Anda mungkin harus mengecualikan librariandan libreofficedari mereka:

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

Ini masih akan kehilangan kelangkaan python-...perpustakaan.

Oli
sumber
1

Dan bakat datang untuk menyelamatkan:

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

Bunyinya: mencari paket yang berisi libsdi dalamnya ?sectiondan yang diinstal ( ~i).

Anda dapat menggunakan ini untuk mencari semua perpustakaan di repositori Anda:

aptitude search '?section(libs)'

Metode ini jelas membutuhkan kemampuan.

Braiam
sumber
Catatan, ini akan berfungsi jika paket mematuhi kebijakan Debian. Jika perpustakaan tidak ada di bagian perpustakaan, maka itu tidak akan disertakan, bahkan jika itu perpustakaan.
Braiam