Soru Bir kütüphane yüklü olup olmadığını nasıl kontrol edilir?


Linux'ta, bir kütüphanenin yüklü olup olmadığını nasıl kontrol edebilirim? (tabii ki komut satırından).

Şimdi benim özel durumumda, libjpeg'in kurulu olup olmadığını kontrol etmek istiyorum.


139
2017-08-16 16:02


Menşei


Hangi dağılımı kullanıyorsunuz? - radius


Cevaplar:


Bunu dağıtımdan bağımsız bir şekilde yapmak için ldconfig dosyasını grep ile kullanabilirsiniz.

ldconfig -p | grep libjpeg

Libjpeg kurulu değilse, çıktı olmaz. Yüklü ise, mevcut her sürüm için bir satır alırsınız.

Libjpeg'i istediğiniz herhangi bir kitaplıkla değiştirin ve kitaplık kullanılabilirliğini denetlemek için genel, bağımsız ve bağımsız bir yönteminiz var.

Herhangi bir nedenden dolayı ldconfig'e giden yol ayarlanmamışsa, genellikle tam yolunu kullanarak onu çağırmayı deneyebilirsiniz. /sbin/ldconfig.

** Zamanın% 99'u *


175
2018-06-06 22:19



Bu cevap olarak kabul edilmelidir. Harika!
Bir kütüphanenin dev sürümünü (başlıklarını) kontrol etmek için bunu kullanmak mümkün değil mi? - andig
Belirtebilir misin % 99 kez? bash: ldconfig: command not found xiance ile Debian x64 üzerinde Jessie! Debian web sitesinde önerilen bir debian sürümü ... - Tomáš Zato
@ TomášZato: ldconfig mevcut değil (command not found süper kullanıcı olmadan çalıştırmayı denerseniz. - Gauthier
/sbin/ldconfig -p Kök olmasına gerek kalmadan benim için çalışıyor. - Pedro Gimeno


Dağıtımınızın paket yöneticisine danışabilirsiniz (yetenek, yum, ...) fakat dağıtımınızı vermediğiniz için size doğru komutu veremem.

Başka bir yol çalıştırmak olabilir gcc -ljpeg'ld: kütüphanesi -ljpeg için bulunamadıysa, gcc'nin kütüphaneyi bulamadığı anlamına gelir (ancak bunun yüklü olmadığı anlamına gelmez),' Undefined sembolleri gibi bir şey alırsanız: "_main", başvurulan from: ... 'libjpeg'in bulunduğu anlamına gelir.

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* sistemde yüklü lib olup olmadığını bulmak için başka bir yolu vardır

Bize daha fazla bağlam sağlarsanız (libjpeg'nin kurulu olup olmadığını kontrol etmeniz gerekir), özel durumunuz için size en iyi çözümü verebileceğimizi kontrol etmenin başka bir yolu vardır.


32
2017-08-16 16:16



Yetenek kullanarak nasıl bulunur? - BBK


Ben kullanıyorum nerede Yarar.
Numune:

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

16
2017-08-17 01:00





Deb tabanlı dağıtım için yapabilirsiniz

dpkg -s packagename

Veya yalnızca dosya adını biliyorsanız, kullanın

locate filename

Dosya adı genellikle libsomething.so [.version] şeklindedir.


8
2017-08-16 16:28



Dosya adı, statik sürüm için "libsomething.a" gibi bir şey de olabilir. - radius
buldum dpkg -syardımcı programda sınırlı olduğu için, kütüphanenin kendisinden çok farklı veya önemli ölçüde farklı olabilecek gerçek paket adını istiyor. kullanırım dpkg -s|grep LIBRARY - Drew Stephens
@dinomite apt-dosya arkadaşın :) - radius


Bunu kullanıyorum:

gcc -lpng

Lib yüklü olduğunda, o verir:

undefined reference to 'main'

Lib olduğunda değil Kurulmuş:

cannot find -lpng

8
2018-03-31 14:50





Redhat tabanlı sistemlerde, bir kütüphanenin yüklü olup olmadığını doğrulamak için pkg-config kullanılabilir. Birçok rpm ikili dosyası, kurulum işlemine başlamadan önce aynı kontrolleri gerçekleştirir, dolayısıyla makulluğuna makul ölçüde güvenebiliriz.

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





Bu, her zaman linux üzerindeki yapılandırma araçlarıyla yapılır.

Şuna bak Autoconf ve KDevelop hakkında eğitim.

Diğer numaralar gibi komutları kullanır ldconfig ve dpkg.


1
2017-08-16 16:11