题 如何检查库是否已安装?


在linux中,如何检查是否安装了库? (当然是从命令行)。

在我的具体情况下,我想检查是否安装了libjpeg。


139
2017-08-16 16:02




您使用的是什么发行版? - radius


答案:


要以独立于发行版的方式执行此操作,您可以将ldconfig与grep一起使用,如下所示:

ldconfig -p | grep libjpeg

如果未安装libjpeg,则不会输出。如果已安装,您将获得每个可用版本的一行。

用你想要的任何库替换libjpeg,你有一个通用的,独立于发行版的*检查库可用性的方法。

如果由于某种原因未设置ldconfig的路径,则通常可以尝试使用其完整路径调用它 /sbin/ldconfig

** 99%的时间*


174
2018-06-06 22:19



应该接受这个答案。大!
使用它来检查库的开发版本(标题)是不可能的,对吧? - andig
你能说明吗? 99%的次数? bash: ldconfig: command not found 在Debian x64 Jessie上用xfce!这是在debian网站上推荐的debian版本...... - Tomáš Zato
@TomášZato: ldconfig 不可用(command not found 如果您尝试在没有超级用户的情况下运行它,则显示) - Gauthier
/sbin/ldconfig -p 适合我而不需要是root用户。 - Pedro Gimeno


您可以查看您的发行版的包管理器(aptitude,yum,...),但由于您没有给出您的发行版,我无法给您正确的命令。

另一种方式可以运行 gcc -ljpeg,如果你得到'ld:找不到-ljpeg的库'这意味着gcc没有找到库(但这并不意味着它没有安装),如果你得到类似'未定义的符号:“_ main”,引用来自:......'这意味着已找到libjpeg。

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* 是否有其他方法可以找到系统中安装的lib

还有很多其他方法可以检查,如果你给我们更多的上下文(为什么你需要检查是否安装了libjpeg),我们可以为你的特定情况提供最佳解决方案。


32
2017-08-16 16:16



如何使用aptitude找到它? - BBK


我用了 哪里 效用。
样品:

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

15
2017-08-17 01:00





对于基于deb的分发,您可以这样做

dpkg -s packagename

或者,如果您只知道文件名,请使用

locate filename

文件名通常是libsomething.so [.version]。


8
2017-08-16 16:28



对于静态版本,文件名也可以是“libsomething.a”。 - radius
我发现 dpkg -s 实用程序有限,因为它需要实际的包名称,这可能与库本身略有不同或显着不同。我用 dpkg -s|grep LIBRARY - Drew Stephens
@dinomite apt-file是你的朋友:) - radius


我用这个:

gcc -lpng

安装lib后,它会产生:

undefined reference to 'main'

当lib是  安装:

cannot find -lpng

8
2018-03-31 14:50





在基于Redhat的系统上,可以使用pkg-config来验证是否安装了库。在继续安装之前,许多rpm二进制文件实际上都进行了相同的检查,因此我们可以合理地依赖它的准确性。

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





这是由Linux上的配置工具一直完成的。

看这个 关于autoconf和KDevelop的教程

其他技巧会使用像 ldconfig 和 dpkg


1
2017-08-16 16:11





您也可以尝试使用dpkg来检查它是否已安装。

dpkg --list | grep [some_key_words_of_your_lib]


0
2017-10-25 08:09



注意:仅适用于基于Debian的发行版 - ALex_hha