pengembangan-web-mp.com

cara memeriksa apakah perpustakaan diinstal?

Di linux, bagaimana cara memeriksa apakah perpustakaan diinstal atau tidak? (dari baris perintah tentu saja).

Dalam kasus spesifik saya sekarang, saya ingin memeriksa apakah libjpeg diinstal.

172
hasen

Untuk melakukan ini dalam mode * distro-independent Anda dapat menggunakan ldconfig dengan grep, seperti ini:

ldconfig -p | grep libjpeg

Jika libjpeg tidak diinstal, tidak akan ada output. Jika diinstal, Anda akan mendapatkan garis untuk setiap versi yang tersedia.

Ganti libjpeg dengan perpustakaan mana pun yang Anda inginkan, dan Anda memiliki cara generik, independen-distro * untuk memeriksa ketersediaan perpustakaan.

Jika karena alasan tertentu jalur ke ldconfig tidak disetel, Anda dapat mencoba menjalankannya menggunakan path lengkapnya, biasanya /sbin/ldconfig.

** 99% dari waktu *

222
faken

Anda dapat memeriksa dengan manajer paket distribusi Anda (aptitude, yum, ...) tetapi karena Anda tidak memberikan distribusi Anda, saya tidak dapat memberi Anda perintah yang tepat.

Cara lain adalah dengan menjalankan gcc -ljpeg, jika Anda mendapatkan 'ld: library tidak ditemukan untuk -ljpeg' itu berarti bahwa gcc belum menemukan perpustakaan (tetapi itu tidak berarti bahwa itu tidak diinstal), jika Anda mendapatkan sesuatu seperti 'Simbol tidak terdefinisi: "_main" , dirujuk dari: ... 'itu berarti libjpeg telah ditemukan.

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* adalah beberapa cara lain untuk menemukan apakah lib in diinstal pada sistem

Ada banyak cara lain untuk memeriksa itu, jika Anda memberi kami lebih banyak konteks (mengapa Anda perlu memeriksa apakah libjpeg diinstal) kami dapat memberikan Anda solusi terbaik untuk kasus spesifik Anda.

34
radius

Saya menggunakan utilitas whereis.

Sampel:

[email protected]:~$ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la
17
lifchicker

Saya menggunakan ini:

gcc -lpng

Ketika lib diinstal, ia menghasilkan:

undefined reference to 'main'

Ketika lib adalah tidak diinstal:

cannot find -lpng
12
AndreLDM

Untuk distribusi berbasis deb bisa Anda lakukan

dpkg -s packagename

Atau jika Anda hanya tahu nama filenya, gunakan

locate filename

Nama file biasanya libsomething.so [.version].

9
Kim

Pada sistem berbasis Redhat, seseorang dapat menggunakan pkg-config untuk memverifikasi apakah pustaka diinstal atau tidak. Banyak binari rpm yang benar-benar melakukan pemeriksaan yang sama sebelum melanjutkan dengan instalasi, jadi kita dapat mengandalkan kebenarannya.

pkg-config --cflags jpeg

pkg-config --libs jpeg

pkg-config --cflags "jpeg >= 1.0.0" # for version check
pkg-config  --modversion jpeg | awk -F. '{ printf "0x%02X%02X%02X\n",$1,$2,$3 }' #version check
4
Saasira

Ini dilakukan oleh alat konfigurasi di linux sepanjang waktu.

Lihat ini Tutorial tentang autoconf dan KDevelop .

Trik lain akan menggunakan perintah seperti ldconfig dan dpkg.

2
nik

Anda juga dapat mencoba menggunakan dpkg untuk memeriksa apakah sudah diinstal.

dpkg --list | grep [some_key_words_of_your_lib]

Selain itu, pada CentOS, Anda dapat mencoba ini.

rpm -qa [lib_name]

1
Scott Yang