一、问题描述
1. 问题概述
在卸载某些包的时候出现了找不到动态库的相关问题,排查出来是库版本不对的解决方案
zhy@zhy-PC:~$ sudo apt remove libopenni-sensor-pointclouds0
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
freeglut3 libopenni0 openni-utils
使用'sudo apt autoremove'来卸载它(它们)。
下列软件包将被【卸载】:
libopenni-sensor-pointclouds0
升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 27 个软件包未被升级。
有 1 个软件包没有被完全安装或卸载。
解压缩后将会空出 1,354 kB 的空间。
您希望继续执行吗? [Y/n] y
(正在读取数据库 ... 系统当前共安装有 291735 个文件和目录。)
正在卸载 libopenni-sensor-pointclouds0 (5.1.0.41.9-2) ...
niReg: error while loading shared libraries: libtinyxml.so.2.6.2: cannot open shared object file: No such file or directory
dpkg: 处理软件包 libopenni-sensor-pointclouds0 (--remove)时出错:
已安装 libopenni-sensor-pointclouds0 软件包 pre-removal 脚本 子进程返回错误状态 127
在处理时有错误发生:
libopenni-sensor-pointclouds0
E: Sub-process /usr/bin/dpkg returned an error code (1)
二、原因分析
这个说是没有找到 libtinyxml.so.2.6.2 库,没找到可能是没有安装,也可能是安装了,只是库名称不对。可能是版本不一样,大部分接口应该是没有改变的。所以先找找自己是否安装了相关库。在去做一个库的软链接即可。
三、解决办法
1. 查找是否安装
可以在文件系统查
也可以用命令行查询
find、where、locate等等
find libtinyxml*
# output
libtinyxml2.so
libtinyxml2.so.6
libtinyxml2.so.6.2.0
libtinyxml.a
libtinyxml.so
libtinyxml.so.2.6.2.1
2. 创建软链接
找到了 libtinyxml.so.2.6.2.1 然后创建一个软链接
sudo ln -s libtinyxml.so.2.6.2.1 libtinyxml.so.2.6.2
再执行之前的命令即可。