当前位置: 首页 > Linux

linux-环境变量导致jar包冲突

时间:2023-04-06 21:27:58 Linux

1.场景外呼平台升级对应的freeswitch模块时,按照通常的正确步骤进行;然后当控制台启动freeswitch时,输入/freeswitch/bin;执行脚本:./freeswitch然后查看fs控制台输出如下:二、故障排除2.1故障排除说明1、freeswitch报告加载mod_sofia失败,于是去freeswitch下的freeswitch/conf/autoload_configs/查看modules.conf.xml,发现已经加载了对应的模块:2.2LD_LIBRARY_PATH说明1.因为同一个包模块在其他机器上都是类似的,正常加载运行,因为所有包的加载和读取都是基于临时环境变量/etc/profile:2.很多没有root权限的软件安装都会比较困难,主要是因为各种系统库文件,也就是环境变量LD_LIBRARY_PATH中的文件。查看其他库文件目录:echo$LD_LIBRARY_PATH一般可以看到七八个定义好的库文件搜索路径。执行函数动态链接.so时,如果文件不在默认目录/lib和/usr/lib下,那么需要指定环境变量LD_LIBRARY_PATH如果需要在已有环境变量中添加新的路径名,使用如下:LD_LIBRARY_PATH=NEWDIRS:$LD_LIBRARY_PATH(newdirs为新的路径字符串),示例如下;exportLD_LIBRARY_PATH=/export/apps/anaconda2/2.4.1/lib/:$LD_LIBRARY_PATH3,需要找到系统的库文件地址,例如:有时候我们安装:liblzma,gcc编辑器找不到liblzma库文件我们系统的,也就是我们的LD_LIBRARY_PATH定义的所有路径下都没有liblzma库文件。验证gcc编辑器是否能找到指定的库文件的方法是:gcc-llzma--verbose其实我们的机器肯定有这个库文件,只是LD_LIBRARY_PATH定义的所有路径中都没有。简单搜索如下:locateliblzma/export/apps/anaconda2/2.4.1/lib/liblzma.a/export/apps/anaconda2/2.4.1/lib/liblzma.la/export/apps/anaconda2/2.4.1/lib/liblzma.so/export/apps/anaconda2/2.4.1/lib/liblzma.so.5/export/apps/anaconda2/2.4.1/lib/liblzma.so.5.0.5为了解决我,我们需要添加:exportLD_LIBRARY_PATH=/export/apps/anaconda2/4.0.0/lib/:$LD_LIBRARY_PATHexportLIBRARY_PATH=/export/apps/anaconda2/4.0.0/lib/:$LIBRARY_PATH4、为什么要修改LD_LIBRARY_PATH?因为运行时动态库搜索路径的顺序是:1.编译目标代码时指定的动态库搜索路径;2、环境变量LD_LIBRARY_PATH指定的动态库搜索路径;3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;4、默认动态库搜索路径/lib和/usr/lib;这个命令是在编译gcc的时候写在程序里的,一般软件源码自带的动态库不会太多,而我们的/lib和/usr/lib只能用root权限修改,配置文件/etc/ld.so.conf也是root的事情,所以我们要对LD_LIBRARY_PATH进行操作。5.永久添加。每次使用这个软件都需要临时修改库文件,因为上面的方法是临时设置环境变量LD_LIBRARY_PATH。重新启动或打开新的Shell后,所有设置将不复存在。为了使该方法更加完善,可以将LD_LIBRARY_PATH的导出语句写到系统文件中,如/etc/profile、/etc/export、~/.bashrc或~/.bash_profile等,具体取决于你用的是什么操作系统咯。2.3通过以下命令查看设置的环境变量:echo$LD_LIBRARY_PATH输出:环境变量有问题,解决方法:1.关闭当前窗口,重新执行echo$LD_LIBRARY_PATH2.在当前窗口:设置LD_LIBRARY_PATH环境变量为空,执行源,然后将其设置为正确的值。按照步骤1修改后:然后启动freeswitch,就可以了。