1

我在 AIX 上运行了 Jenkins:

java -jar jenkins.war --httpPort=8082

在 Jenkins 作业配置 > 源代码管理 > Git 中,我输入

Repository URL: user@XXX.XXX.XXX.XXX:/opt/git/project.git

其中 XXX 是服务器的 ip。

我收到以下错误消息:

Failed to connect to repository : Command "/usr/bin/git ls-remote -h user@XXX.XXX.XXX.XXX:/opt/git/project.git HEAD" returned status code 255:
stdout: 
stderr: exec(): 0509-036 Cannot load program /usr/bin/git because of the following errors:
0509-150   Dependent module /usr/lib/libiconv.a(libiconv.so.2) could not be loaded.
0509-152   Member libiconv.so.2 is not found in archive 

我已经在 AIX 和 WinXP 上进行了测试。它在 Windows 机器上运行良好。但我需要 Jenkins 在 AIX 服务器上。用谷歌搜索了错误,但徒劳无功。我该如何解决这个错误?

4

2 回答 2

1

确保您已安装 libiconv(在 /usr/... 或 /opt 中),如在此线程线程中。

find /opt -name "libiconv*" -print
find /usr -name "libiconv*" -print

尝试并取消设置$LIBPATH

键入ldd /usr/bin/git以检查 git 在哪里查找其依赖项。


OP Lai 确认使用了以下解决方案之一:

当我使用ldd /usr/bin/git时,它会给出/opt/freeware/lib/libiconv.a(libiconv.so.2)
但是 Git 错误来自/usr/lib/libiconv.a(libiconv.so.2).

有一个libiconv.lain/opt/freeware/lib但没有 in /usr/lib
我将它复制到 /usr/lib 然后它工作。

于 2013-05-14T10:36:17.660 回答
0

即使我没有LIBPATH在 shell 中配置,我也遇到了这个问题,但是从 java 派生的进程有。因此,从 java 调用时 git 没有工作,但在其他情况下工作得很好。

IBM JDK 用于LIBPATH管理自己的共享库,但作为任何环境变量,它会被子进程继承,在这种情况下,它可能会导致根本没有设置时不存在的问题LIBPATH

由于 IBM JDK 预先存在LIBPATH而不是替换它,因此LIBPATH为 java 进程设置分叉进程所需的所有路径就足够了,因此它将被继承。

于 2015-09-17T14:19:50.763 回答