Pertanyaan bagaimana cara memeriksa apakah perpustakaan sudah diinstal?


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

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


139
2017-08-16 16:02




Distribusi apa yang Anda gunakan? - radius


Jawaban:


Untuk melakukan ini dalam mode * distro-independen 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 oleh pustaka yang Anda inginkan, dan Anda memiliki cara generik, distro-independen * untuk memeriksa ketersediaan pustaka.

Jika karena suatu alasan jalur ke ldconfig tidak disetel, Anda dapat mencoba untuk memohonnya menggunakan jalur lengkapnya, biasanya /sbin/ldconfig.

** 99% dari waktu *


174
2018-06-06 22:19



Ini harus diterima sebagai jawabannya. Besar!
Tidak mungkin menggunakan ini untuk memeriksa versi dev (header) dari sebuah perpustakaan, bukan? - andig
Bisakah Anda tentukan 99% kali? bash: ldconfig: command not found pada Debian x64 Jessie dengan xfce! Ini adalah rilis debian yang direkomendasikan di situs web debian ... - Tomáš Zato
@ TomášZato: ldconfig tidak tersedia (command not found muncul) jika Anda mencoba menjalankannya tanpa superuser. - Gauthier
/sbin/ldconfig -p bekerja untuk saya tanpa harus menjadi root. - Pedro Gimeno


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

Cara lain bisa dijalankan gcc -ljpeg, jika Anda mendapatkan 'ld: library not found for -ljpeg' itu berarti gcc belum menemukan pustaka (tetapi itu tidak berarti bahwa itu tidak diinstal), jika Anda mendapatkan sesuatu seperti 'Undefined symbols: "_main", direferensikan dari: ... 'itu berarti libjpeg telah ditemukan.

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* adalah beberapa cara lain untuk menemukan apakah lib terinstal di sistem

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


32
2017-08-16 16:16



Bagaimana menemukannya menggunakan kecerdasan? - BBK


Saya menggunakan dimana utilitas.
Mencicipi:

l1feh4ck3r @ xxx: ~ $ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la

15
2017-08-17 01:00





Untuk distribusi berbasis deb dapat Anda lakukan

dpkg -s packagename

Atau jika Anda hanya tahu nama file, gunakan

locate filename

Nama file biasanya libsomething.so [.version].


8
2017-08-16 16:28



Nama file juga bisa berupa "libsomething.a" untuk versi statis. - radius
saya menemukan dpkg -s terbatas dalam utilitas, karena menginginkan nama paket yang sebenarnya, yang mungkin berbeda secara halus atau signifikan dari perpustakaan itu sendiri. saya menggunakan dpkg -s|grep LIBRARY - Drew Stephens
@dinomite apt-file adalah teman Anda :) - radius


Saya menggunakan ini:

gcc -lpng

Ketika lib diinstal, ia menghasilkan:

undefined reference to 'main'

Ketika lib itu tidak terpasang:

cannot find -lpng

8
2018-03-31 14:50





Pada sistem berbasis Redhat, seseorang dapat menggunakan pkg-config untuk memverifikasi apakah pustaka diinstal atau tidak. Banyak rpm binari sebenarnya melakukan pemeriksaan yang sama sebelum melanjutkan instalasi, jadi kami 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

3
2018-02-07 09:35





Ini dilakukan oleh alat konfigurasi di linux setiap saat.

Lihat ini Tutorial tentang autoconf dan KDevelop.

Trik lain akan menggunakan perintah seperti ldconfig dan dpkg.


1
2017-08-16 16:11





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

dpkg --list | grep [some_key_words_of_your_lib]


0
2017-10-25 08:09



Catatan: Akan berfungsi hanya untuk distro berbasis Debian - ALex_hha