当路径不存在时运行ldd命令我得到'找不到文件'而不是路径。 bash-3.2 $ ldd curl libcurl.so.4 => /usr/local/lib/libcurl.so.4 libldap.so.5 => /usr/lib/libldap.so.5 librt.so.1 => /lib/librt.so.1 libssl.so.1.0.0 => (文件未找到) libcrypto.so.1.0.0 => (找不到档案)
是否有选项可以查看找不到哪个文件?完整的路径?
答案 0 :(得分:3)
ldd正在/etc/ld.so.conf中提到的库搜索路径中进行搜索。或者它可能使用环境变量LD_LIBRARY_PATH。据我所知,它至少在/ usr / local / lib,/ usr / lib和/ lib中看起来是大多数系统的默认设置。它无法在这三个位置找到libssl.so.1.0.0。这就是为什么你找不到'文件的原因'消息。
一个原因可能是您没有安装libssl.so.1.0.0。也许是其他一些版本。
另一个原因可能是它安装在其他地方。需要加载共享库的应用程序将该路径硬编码或使用LD_LIBRARY_PATH。
无论如何,回答你的问题:ldd无法找到libssl.so.1.0.0的完整路径,这就是你得到错误的原因。
要找到它,你必须手动搜索它。一个简单的方法是
find / -ls | grep libssl.so
或更好(如果您只想搜索系统磁盘)
find / -mount -ls | grep libssl.so
可能导致在多个位置安装了许多版本。