TeamCity Server - 无法在路径中找到 P4 命令行客户端
TeamCity Server - Unable to find P4 command-line client in path
我做了很多研究,以找到其他有类似问题的人,但我最接近的是在平台上使用 TeamCity 的人(Mac OS X 或Windows),因此可以使用 p4 的完整路径(例如 /usr/local/bin/p4 或 C:\Program Files (x86\Perforce\p4.exe).
但是,我的服务器 运行s 在 Mac OS X 上,我在 OSX 和 Windows 8 上都有代理。所以这里是我的问题从哪里开始。
当运行我的Team City在普通用户下,我们叫他'joe',通过launchctl,VCS有问题
Failed to collect changes, error: Unable to find P4 command-line client at path 'p4' on joe-his-computer for user joe
请注意,p4 是我所有构建配置 VCS 设置中的 p4 可执行文件的路径。 (默认)
另一个问题是我使用我的 VCS 作为代理结账而不是服务器结账。
当我 运行 我的服务器不是作为守护进程而是通过 ssh 以 'joe' 登录并通过 <TeamCity Server Data Dir>/bin/teamcity-server.sh
启动它时,就没有问题了,他可以在我的服务器和代理上访问 p4。
这让我很沮丧,因为我似乎无法找到为什么会出现这个问题。我尝试的另一件事是将我的构建配置中的路径定义为 %env.P4PATH
并确保我所有的代理都有执行强制的完整路径(尽管这很荒谬,因为很明显我的服务器有问题而不是我的代理) .
遗憾的是,这也不起作用,因为 %env.P4PATH
未在我的服务器上定义。
现在我只是通过我知道它工作的唯一方式使用我的 TeamCity 服务器,但我真的很想 运行 它作为守护进程(launchagent),因为它会确保我的服务器是即使在断电后也始终处于活动状态。
如果您需要更多详细信息来帮助我,请告诉我。
编辑: 再次手动启动我的 TeamCity 后,我发现我的 OS X 构建代理有同样的问题。该代理 运行ning 在与服务器相同的 OS X 计算机上,并且也是通过 launchctl
.
启动的
那个代理的错误信息说:
Failed to perform checkout on agent: Unable to find P4 command-line client at path 'p4' on joe-his-computer for user joe
感谢一位同事,我发现了这个问题。在那台特定的机器上,p4
在 /usr/local/bin
中,但 /usr/local/bin
不在我的 PATH 中。通过将 p4
移至 /usr/bin
,我解决了 OSX Agent
和 OSX Server
的问题。
我做了很多研究,以找到其他有类似问题的人,但我最接近的是在平台上使用 TeamCity 的人(Mac OS X 或Windows),因此可以使用 p4 的完整路径(例如 /usr/local/bin/p4 或 C:\Program Files (x86\Perforce\p4.exe).
但是,我的服务器 运行s 在 Mac OS X 上,我在 OSX 和 Windows 8 上都有代理。所以这里是我的问题从哪里开始。
当运行我的Team City在普通用户下,我们叫他'joe',通过launchctl,VCS有问题
Failed to collect changes, error: Unable to find P4 command-line client at path 'p4' on joe-his-computer for user joe
请注意,p4 是我所有构建配置 VCS 设置中的 p4 可执行文件的路径。 (默认)
另一个问题是我使用我的 VCS 作为代理结账而不是服务器结账。
当我 运行 我的服务器不是作为守护进程而是通过 ssh 以 'joe' 登录并通过 <TeamCity Server Data Dir>/bin/teamcity-server.sh
启动它时,就没有问题了,他可以在我的服务器和代理上访问 p4。
这让我很沮丧,因为我似乎无法找到为什么会出现这个问题。我尝试的另一件事是将我的构建配置中的路径定义为 %env.P4PATH
并确保我所有的代理都有执行强制的完整路径(尽管这很荒谬,因为很明显我的服务器有问题而不是我的代理) .
遗憾的是,这也不起作用,因为 %env.P4PATH
未在我的服务器上定义。
现在我只是通过我知道它工作的唯一方式使用我的 TeamCity 服务器,但我真的很想 运行 它作为守护进程(launchagent),因为它会确保我的服务器是即使在断电后也始终处于活动状态。
如果您需要更多详细信息来帮助我,请告诉我。
编辑: 再次手动启动我的 TeamCity 后,我发现我的 OS X 构建代理有同样的问题。该代理 运行ning 在与服务器相同的 OS X 计算机上,并且也是通过 launchctl
.
那个代理的错误信息说:
Failed to perform checkout on agent: Unable to find P4 command-line client at path 'p4' on joe-his-computer for user joe
感谢一位同事,我发现了这个问题。在那台特定的机器上,p4
在 /usr/local/bin
中,但 /usr/local/bin
不在我的 PATH 中。通过将 p4
移至 /usr/bin
,我解决了 OSX Agent
和 OSX Server
的问题。