Ubuntu如何查找某个*.so属于哪个包并安装

1.运行darknet时,提醒错误libIlmImf.so.6: cannot open shared object file: No such file or directory

 

2.参考内容:https://blog.csdn.net/wangyan_hbu/article/details/73649936

有时我们会遇到如下情况:

error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory,

我们首先知道的是缺少libz.so.1这个库文件。


解决方法:很明显就是安装这个库所在包,可是我们怎么这知道 libz.so.1在哪个包呢?


我们使用命令:apt-file search 来查找,首先安装,按如下命令:

sudo apt-get install apt-file

安装完以后系统会提示你update,如果没有提示,在终端输入如下命令:

sudo apt-file update

使用apt-file  search命令来查找某个命令或某一个库所在的包,具体用法如下:

~$ apt-file search libz.so.1


运行命令显示如下:

lib32z1: /usr/lib32/libz.so.1

lib32z1: /usr/lib32/libz.so.1.2.3.3

lib32z1-dev: /usr/lib32/libz.so

lsb-build-base3: /usr/lib/lsb3/libz.so

zlib1g: /lib/libz.so.1

zlib1g: /lib/libz.so.1.2.3.3

zlib1g-dbg: /usr/lib/debug/lib/libz.so.1.2.3.3

zlib1g-dbg: /usr/lib/debug/usr/lib32/libz.so.1.2.3.3

zlib1g-dev: /usr/lib/libz.so


使用apt-file search 查找你的库所在包就行了,右边的是匹配你的库,左边的是你查的库所在的包,所以最后安装对应的包就行了。我们会发现与libz.so.1相对应的是左边名字叫:lib32z1的包,所以安装这个lib32z1包即可。

sudo apt-get install lib32z1

 

解决方式:

输入:apt-file search libIlmImf.so.6

显示:

libopenexr6: /usr/lib/x86_64-linux-gnu/libIlmImf.so.6
libopenexr6: /usr/lib/x86_64-linux-gnu/libIlmImf.so.6.0.0

输入:sudo apt-get install libopenexr6

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值