【问题标题】:Problem performing svn export using Hudson that run as a service使用作为服务运行的 Hudson 执行 svn 导出时出现问题
【发布时间】:2011-09-25 12:20:09
【问题描述】:

我有一个执行构建以及执行 svn 导出的脚本。当我手动运行 hudson 时,通过从 root 用户运行它,我可以毫无问题地进行构建和 svn 导出。

如果我使用服务 (chkconfig) 调用 hudson,hudson 运行正常。 SVN 结帐(假设这是 URL1)也很好,因为凭据存储在 hudson 配置中。但是,当我的脚本尝试执行 svn 导出(不同于 URL1;假设这是 URL2)时,它总是失败。它说“'root'的密码:身份验证领域”。这基本上是错误的,因为我的构建服务器无法提供登录 svn 所需的凭据。这是我不明白的,因为我将 svn 凭据存储在我的 root 帐户中,并且从 shell 或当我手动启动 hudson 时(不是作为服务)执行 svn update/svn info 到 URL2 没有问题。

我现在的猜测是,当我们将应用程序作为服务运行时,它不会加载一些/所有存储的用户配置?知道如何强制服务加载我的 svn 凭据吗?也欢迎任何其他解决方案/见解。

顺便说一句,我的构建服务器正在运行 Red Hat 5.6

谢谢!!!

【问题讨论】:

    标签: linux svn hudson


    【解决方案1】:

    无法给你详细的答案,但交互式 shell 和作为服务运行时的区别之一是第一次通过读取 ~/.bash_profile 启动,而第二次运行 ~/.bashrc 尝试比较两者!

    【讨论】:

    • 感谢您指出这一点。我最终没有修改我的 bash conf。
    【解决方案2】:

    比较env 在两种情况下(在 hudson 和您的 shell 中)的输出应该可以帮助您解决此问题。

    【讨论】:

    • 这确实给了我一些线索。谢谢!
    【解决方案3】:

    默认情况下,SVN 将用户凭据存储在其相应的主目录中。当服务器重新启动时,它不会像 Tobu 所指出的那样加载您的配置文件(在我的情况下是 /etc/profile)。所以要解决这个问题,我们只需要将 HOME 文件夹设置到正确的位置。修改应用的服务脚本以包含以下行:

    HOME=/<<user home folder location>>

    这解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多