如何在Jenkins上设置LD_LIBRARY_PATH

3

我在从Jenkins运行作业时遇到了java.lang.UnsatisfiedLinkError问题。

 <error message="no JSTAF in java.library.path" type="java.lang.UnsatisfiedLinkError">java.lang.UnsatisfiedLinkError: no JSTAF in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
        at java.lang.Runtime.loadLibrary0(Runtime.java:840)
        at java.lang.System.loadLibrary(System.java:1047)

基本上我需要设置LD_LIBRARY_PATH,当它被设置后,在命令行中执行就能正常工作。例如,当我像下面这样设置LD_LIBRARY_PATH

export LD_LIBRARY_PATH=</proj/lib>:$LD_LIBRARY_PATH

一旦设置,命令行中的代码执行就可以正常工作。

我尝试使用EnvInjectPlugin来设置这个LD_LIBRARY_PATH并注入了LD_LIBRARY_PATH

但我仍然不确定为什么 Jenkins 没有识别到这个LD_LIBRARY_PATH。如何进行设置,以便 Jenkins 作业执行能够正常工作?

1个回答

3

昨天我在这里回答了一个类似的问题:KDevelop4:加载共享库时发生错误

实际上,在许多Linux操作系统中LD_LIBRARY_PATH已不再使用。请在/etc/ld.so.conf.d目录中使用配置文件,并在启动Jenkins之前运行ldconfig。(请参见上述引用的帖子)

编辑[解决方案]:

在聊天中讨论后,问题已通过添加以下内容得到解决:

#!/bin/bash
export LD_LYBRARY_PATH=${LD_LIBRARY_PATH}:<myPathForJenkins>

/etc/profile.d/中编写一个简短的脚本,并使用chmod +x命令使其可执行。


我不清楚在哪里添加对我的</proj/lib>的引用。我在我的系统中没有看到/etc/ld.so.conf/libc.conf。 - Exploring
你正在使用哪个操作系统? - Danduk82
红帽企业版Linux服务器发布6.3版(圣地亚哥) - Exploring
应该有一个名为/etc/ld.so.conf的文件和一个名为/etc/ld.so.conf.d的目录...是吗? - Danduk82
以前我使用过导出LD_LIBRARY_PATH。我认为从现在开始,即使是从命令行运行,我也不需要导出LD_LIBRARY_PATH了吧? - Exploring
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接