2013-05-14 77 views
1

我已经在AIX上与运行詹金斯詹金斯GIT:无法连接从

java -jar jenkins.war --httpPort=8082 

在詹金斯任务配置>源代码管理>混帐,我进入

Repository URL: [email protected]:/opt/git/project.git 

其中XXX为ip的服务器。

,我得到了以下错误消息:

Failed to connect to repository : Command "/usr/bin/git ls-remote -h [email protected]:/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机器上工作正常。但我需要詹金斯在AIX服务器上。找到了错误但徒劳无功。我怎样才能解决这个错误?

回答

1

确保您安装了libiconv(在/ usr/...或in/opt中),如this threadthis one

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

尝试并取消设置$LIBPATH

类型ldd /usr/bin/git检查git在哪里查找它的依赖关系。


OP Laiconfirms已经使用的解决方案之一:

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

/opt/freeware/lib中有libiconv.la,但不在/usr/lib中。
我将它复制到/ usr/lib然后它可以工作。

+0

当我使用'ldd/usr/bin/git'时,它会给'/opt/freeware/lib/libiconv.a(libiconv.so.2)'。但是Git错误来自'/usr/lib/libiconv.a(libiconv.so.2)'。我很困惑。我从这两个地方获得了libiconv.a。 – Lai 2013-05-15 02:14:56

+0

'/ opt/freeware/lib'中有'libiconv.la',但不在'/ usr/lib'中。我将它复制到'/ usr/lib'中,然后完成〜 – Lai 2013-05-15 02:42:07

+0

@Lai听起来不错。我已将您的结论纳入答案中,以获得更多的知名度。 – VonC 2013-05-15 05:44:36

0

我遇到了这个即使我没有LIBPATH壳配置,但是从Java派生的进程了。因此,从java调用git时没有工作,但工作得很好,否则。

IBM JDK使用LIBPATH来管理自己的共享库,但任何环境变量,它是由子进程继承它可能会导致在没有设定LIBPATH根本不存在问题。

由于IBM JDK预先存在LIBPATH而不是替换它,因此应该足以为java进程设置LIBPATH,并为分支进程指定所有必需的路径,以便继承它。