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, bebas distro * untuk memeriksa ketersediaan perpustakaan.
Jika karena alasan tertentu jalur ke ldconfig tidak disetel, Anda dapat mencoba menjalankannya menggunakan jalur lengkapnya, biasanya /sbin/ldconfig.
Ini tidak mungkin untuk menggunakan ini untuk memeriksa versi dev (header) dari sebuah perpustakaan, kan?
andig
2
Bisakah Anda menentukan 99% kali ? bash: ldconfig: command not foundpada Debian x64 Jessie dengan xfce! Ini adalah rilis debian yang direkomendasikan di situs debian ...
Tomáš Zato
4
@ TomášZato: ldconfigtidak tersedia ( command not foundmuncul) jika Anda mencoba menjalankannya tanpa menjadi pengguna super.
Gauthier
2
/sbin/ldconfig -pbekerja untuk saya tanpa harus menjadi root.
Pedro Gimeno
34
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 dapat dijalankan gcc -ljpeg, jika Anda mendapatkan 'ld: library tidak ditemukan untuk -ljpeg' itu berarti bahwa gcc belum menemukan perpustakaan (tetapi itu tidak berarti 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* ada beberapa cara lain untuk menemukan apakah lib di instal di 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 solusi terbaik untuk kasus spesifik Anda.
Nama file juga bisa seperti "libsomething.a" untuk versi statis.
radius
Saya menemukan dpkg -sketerbatasan dalam utilitas, karena menginginkan nama paket yang sebenarnya, yang mungkin berbeda secara halus atau signifikan dari perpustakaan itu sendiri. Saya menggunakandpkg -s|grep LIBRARY
Drew Stephens
2
@dinomite apt-file adalah teman Anda :)
radius
4
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.
Jawaban:
Untuk melakukan ini dalam mode * distro-independent Anda dapat menggunakan ldconfig dengan grep, seperti ini:
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, bebas distro * untuk memeriksa ketersediaan perpustakaan.
Jika karena alasan tertentu jalur ke ldconfig tidak disetel, Anda dapat mencoba menjalankannya menggunakan jalur lengkapnya, biasanya
/sbin/ldconfig
.** 99% dari waktu *
sumber
bash: ldconfig: command not found
pada Debian x64 Jessie dengan xfce! Ini adalah rilis debian yang direkomendasikan di situs debian ...ldconfig
tidak tersedia (command not found
muncul) jika Anda mencoba menjalankannya tanpa menjadi pengguna super./sbin/ldconfig -p
bekerja untuk saya tanpa harus menjadi root.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 dapat dijalankan
gcc -ljpeg
, jika Anda mendapatkan 'ld: library tidak ditemukan untuk -ljpeg' itu berarti bahwa gcc belum menemukan perpustakaan (tetapi itu tidak berarti 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*
ada beberapa cara lain untuk menemukan apakah lib di instal di sistemAda banyak cara lain untuk memeriksa itu, jika Anda memberi kami lebih banyak konteks (mengapa Anda perlu memeriksa apakah libjpeg diinstal) kami dapat memberikan solusi terbaik untuk kasus spesifik Anda.
sumber
Saya menggunakan utilitas whereis .
Sampel:
sumber
Saya menggunakan ini:
Ketika lib diinstal, ia menghasilkan:
Ketika lib tidak diinstal:
sumber
Untuk distribusi berbasis deb bisa Anda lakukan
Atau jika Anda hanya tahu nama filenya, gunakan
Nama file biasanya libsomething.so [.version].
sumber
dpkg -s
keterbatasan dalam utilitas, karena menginginkan nama paket yang sebenarnya, yang mungkin berbeda secara halus atau signifikan dari perpustakaan itu sendiri. Saya menggunakandpkg -s|grep LIBRARY
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.
sumber
Ini dilakukan oleh alat konfigurasi di linux setiap saat.
Lihatlah Tutorial ini tentang autoconf dan KDevelop .
Trik lain akan menggunakan perintah seperti
ldconfig
dandpkg
.sumber
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]
sumber
pkg-config
saja.