Câu trả lời:
Để thực hiện việc này theo cách phân tán * độc lập, bạn có thể sử dụng ldconfig với grep, như thế này:
ldconfig -p | grep libjpeg
Nếu libjpeg không được cài đặt, sẽ không có đầu ra. Nếu nó được cài đặt, bạn sẽ nhận được một dòng cho mỗi phiên bản có sẵn.
Thay thế libjpeg bằng bất kỳ thư viện nào bạn muốn và bạn có cách kiểm tra chung * độc lập với phân phối * về tính khả dụng của thư viện.
Nếu vì một lý do nào đó, đường dẫn đến ldconfig không được đặt, thông thường bạn có thể thử gọi nó bằng đường dẫn đầy đủ của nó /sbin/ldconfig
.
** 99% số lần *
bash: ldconfig: command not found
trên Debian x64 Jessie với xfce! Đây là bản phát hành debian được giới thiệu trên trang web của debian ...
ldconfig
không khả dụng ( command not found
hiển thị) nếu bạn cố chạy nó mà không phải là siêu người dùng.
/sbin/ldconfig -p
làm việc cho tôi mà không cần phải root.
Bạn có thể kiểm tra với người quản lý gói phân phối của mình (aptitude, yum, ...) nhưng vì bạn không cung cấp cho bản phân phối của mình nên tôi không thể đưa ra lệnh đúng.
Một cách khác có thể là chạy gcc -ljpeg
, nếu bạn nhận được 'ld: thư viện không tìm thấy cho -ljpeg', điều đó có nghĩa là gcc không tìm thấy thư viện (nhưng điều đó không có nghĩa là nó chưa được cài đặt), nếu bạn nhận được một cái gì đó như 'Biểu tượng không xác định : "_Main", được tham chiếu từ: ... 'có nghĩa là libjpeg đã được tìm thấy.
locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg*
là một số cách khác để tìm nếu lib được cài đặt trong hệ thống
Có nhiều cách khác để kiểm tra xem, nếu bạn cung cấp cho chúng tôi nhiều ngữ cảnh hơn (tại sao bạn cần kiểm tra xem libjpeg đã được cài đặt chưa), chúng tôi có thể cung cấp cho bạn giải pháp tốt nhất cho trường hợp cụ thể của bạn.
Tôi sử dụng tiện ích whereis .
Mẫu vật:
l1feh4ck3r@xxx:~$ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la
Đối với phân phối dựa trên deb bạn có thể làm
dpkg -s packagename
Hoặc nếu bạn chỉ biết tên tệp, hãy sử dụng
locate filename
Tên tệp thường là libs Something.so [.version].
dpkg -s
hạn chế về tiện ích, vì nó muốn tên gói thực tế, có thể khác biệt một cách tinh tế hoặc đáng kể so với chính thư viện. Tôi sử dụngdpkg -s|grep LIBRARY
Trên các hệ thống dựa trên Redhat, người ta có thể sử dụng pkg-config để xác minh xem thư viện có được cài đặt hay không. Nhiều nhị phân vòng / phút thực sự thực hiện các kiểm tra tương tự trước khi tiến hành cài đặt, vì vậy chúng tôi có thể dựa vào tính xác thực của nó một cách hợp lý.
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
Điều này được thực hiện bởi các công cụ cấu hình trên linux mọi lúc.
Nhìn vào Hướng dẫn này về autoconf và KDevelop .
Các thủ thuật khác sẽ sử dụng các lệnh như ldconfig
và dpkg
.
Bạn cũng có thể thử sử dụng dpkg để kiểm tra xem nó đã được cài đặt chưa.
dpkg --list | grep [some_key_words_of_your_lib]
Bên cạnh đó, trên CentOS, bạn có thể thử điều này.
rpm -qa [lib_name]
pkg-config
thay thế.