博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LD_LIBRARY_PATH设置不当导致的自动安装失败
阅读量:2439 次
发布时间:2019-05-10

本文共 676 字,大约阅读时间需要 2 分钟。

问题现象

某天自动安装的时候,发现安装出错,最后定位到是自动安装脚本执行时会有如下报错

./cfg_utility: error while loading shared libraries: libxerces-c.so.26: cannot open shared object file: No such file or directory
我们自动安装时会修改xml中配置项,因为在安装脚本中携带了可执行文件cfg_utility和libxerces-c.so.26动态库。错误原因是找不到动态库文件

echo $LD_LIBRARY_PATH 查看结果,发现安装正常的机器上一般是空,而失败机器上是类似如下/home路径

问题解决

安装脚本里为了防止用户修改不那么合规的LD_LIBRARY_PATH,在执行cfg_utility脚本前添加

export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:."

关于LD_LIBRARY_PATH

一般系统安装完成后echo $LD_LIBRARY_PATH都是空,为空的情况下则会按照如下路径寻找
1.当前路径
2./etc/ld.so.conf 文件下配置的路径
但是如果设置了LD_LIBRARY_PATH就只会找本环境变量的值了,所以一般手动设置时是类似如下方式
export LD_LIBRARY_PATH="/home:${LD_LIBRARY_PATH}"
在保留之前环境变量值的情况下,以分号分隔加入自己需要查找的路径,并在之前变量的前面来修改查找优先级

转载地址:http://jmcqb.baihongyu.com/

你可能感兴趣的文章
用php在linux下连接mssql2000(转)
查看>>
让你的Linux支持WEB修改密码(转)
查看>>
MYSQL的master/slave数据同步配置(转)
查看>>
一个完整的ftp远程批量shell(转)
查看>>
Vsftpd匿名无法上传,配置如下,帮忙找下原因,谢谢~!(转)
查看>>
crontab命令简介(转)
查看>>
C++中的静态联编和动态联编介绍(转)
查看>>
带有农历的日历(QT版本1752-2100)(转)
查看>>
LINUX的系统内核空间的保护(转)
查看>>
在Visual C++中利用UDL文件建ADO连接(转)
查看>>
C++编程批评系列 继承的本质(转)
查看>>
unix下编写socket程序的一般步骤(转)
查看>>
共享软件中注册部分的简单实现(转)
查看>>
RedHat Linux 9下所有权和许可权限(转)
查看>>
C++程序设计从零开始之语句(转)
查看>>
利用Apache+PHP3+MySQL建立数据库驱动的动态网站(转)
查看>>
C#中实现DataGrid双向排序(转)
查看>>
利用C语言小程序来解决大问题(转)
查看>>
简单方法在C#中取得汉字的拼音的首字母(转)
查看>>
.NET开发之中的17种正则表达式小结(转)
查看>>