Linux'ta bir kitaplığın kurulu olup olmadığını nasıl kontrol ederim? (tabii ki komut satırından).
Şimdi özel durumumda libjpeg'in kurulu olup olmadığını kontrol etmek istiyorum.
Bunu distro-bağımsız * bir şekilde yapmak için ldconfig'i grep ile kullanabilirsiniz, örneğin:
ldconfig -p | grep libjpeg
Libjpeg kurulu değilse çıktı alınmayacaktır. 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; kitaplık kullanılabilirliğini denetlemek için genel, dağıtımdan bağımsız * bir yolunuz vardır.
Herhangi bir nedenle ldconfig yolu ayarlanmamışsa, tam yolunu (genellikle /sbin/ldconfig
.
** Zamanların% 99'u *
Dağıtımınızın paket yöneticisiyle (yetenek, yum, ...) kontrol edebilirsiniz, ancak dağıtımınızı yapmadığınız için size doğru komutu veremem.
Başka bir yol da gcc -ljpeg
, -ljpeg için 'ld: kütüphane bulunamadı ise, gcc kütüphaneyi bulamadığı anlamına gelir (ancak yüklü olmadığı anlamına gelmez),' Tanımsız semboller: "_main" gibi bir şey alırsanız , kaynak: ... 'libjpeg'nin bulunduğu anlamına gelir.
locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg*
, sistemdeki lib'in kurulu olup olmadığını bulmanın başka bir yoludur
Bize daha fazla bağlam verirseniz (libjpeg'in yüklü olup olmadığını kontrol etmeniz gerekiyorsa) size özel durumunuz için en iyi çözümü verebileceğimizi kontrol etmenin birçok yolu vardır.
whereis yardımcı programını kullanıyorum.
Örneklem:
[email protected]:~$ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la
Bunu kullanıyorum:
gcc -lpng
Lib kurulduğunda, aşağıdakileri verir:
undefined reference to 'main'
Lib not yüklendiğinde:
cannot find -lpng
Deb tabanlı dağıtım için şunları yapabilirsiniz
dpkg -s packagename
Veya yalnızca dosya adını biliyorsanız,
locate filename
Dosya adı genellikle libsomething.so [.version] şeklindedir.
Redhat tabanlı sistemlerde, bir kütüphanenin kurulu olup olmadığını doğrulamak için pkg-config kullanılabilir. Birçok rpm ikili dosyası, yüklemeye devam etmeden önce aynı kontrolleri yapar, bu nedenle makul bir şekilde gerçekliğine 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
Bu, linux üzerindeki yapılandırma araçları tarafından her zaman yapılır.
Şuna bakın autoconf ve KDevelop hakkında öğretici .
Diğer hileler ldconfig
ve dpkg
gibi komutları kullanır.
Yüklü olup olmadığını kontrol etmek için dpkg kullanmayı da deneyebilirsiniz.
dpkg --list | grep [some_key_words_of_your_lib]
Ayrıca, CentOS'ta bunu deneyebilirsiniz.
rpm -qa [lib_name]