Jenkins执行过程中“git: /usr/local/jboss/bin/native/libz.so.1: no version information available (required by git)”

在测试用的一个jenkins上执行任务用到了的Git命令,然后得到了“git: /usr/local/jboss/bin/native/libz.so.1: no version information available (required by git)”这样的一些警告信息。
然后,我ssh登录到该jenkins执行机上,运行"git --version"这样的命令也是正常的,没有警告信息。
而且,看到“/usr/local/jboss/bin/native/libz.so.1”这个路径看着有点怪,怎么跑到这里去找.so库呢。想了下,这个jenkins是用jboss容器启动的,可能是jboss的一些默认配置。(没准备换容器了,暂不细看它,先解决问题吧)

在jenkins中新建一个job,job中执行shell命令,很简单的两条命令如下:

运行该job,在console output中看到如下输出:


[root@host_5-147 ~]# find /usr/ -name "libz.so*"
/usr/lib64/libz.so
/usr/local/jboss/bin/native/libz.so.1
/usr/local/jboss/bin/native/libz.so
/usr/local/jboss/bin/native/libz.so.1.2.3
这样就一目了然了,输出的$LD_LIBRARY_PATH环境变量,程序执行时找lib当然就在这里去找了。
关于环境变量LD_LIBRARY_PATH,我在去年的一篇文章“关于Linux上的链接库”中也做了一些描述。

在jenkins执行机上,find查找一下这个库,在/usr/lib64目录下也找到了,如下:

为了解决这个jenkins中链接库查找的问题,可以重新配置脚本,在执行shell命令的开始,先设置一下环境变量LD_LIBRARY_PATH,例如:export LD_LIBRARY_PATH=/usr/lib64:/usr/lib:/lib:/lib64
当然,如果为了兼容jboss原来的配置,可以再把前面打印出来的jdk/jboss等相关的路径也加回去。

参考:http://stackoverflow.com/questions/11961400/getting-rid-of-git-usr-local-lib-libz-so-1-no-version-information-available

master

Stay hungry, stay foolish.

发表评论

邮箱地址不会被公开。 必填项已用*标注

*