Mac上的jenkins,PATH没有设置正确,没有/ usr / local / bin
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac上的jenkins,PATH没有设置正确,没有/ usr / local / bin相关的知识,希望对你有一定的参考价值。
我最近使用Homebrew安装了Jenkins。我还使用Homebrew安装了Mercurial。
我可以成功克隆一个hg仓库 - 从终端。但如果我尝试在詹金斯的工作中做同样的事情,那就失败了。
所以,在工作中,我告诉詹金斯运行shell脚本echo $PATH
。果然,路径/usr/local/bin
不在那里。如果我从终端执行相同的命令,它就在那里。
那么,什么是修改PATH的最佳方法,以便当我从终端回显时,Jenkins正在拉动我正在使用的相同PATH?
注意,Jenkins是从我登录进行这些测试的同一个用户帐户运行的,所以我无法理解为什么会发生这种情况。
在Jenkins的launchd .plist文件中,您可以使用以下命令设置PATH环境变量:
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>(insert your path value here)</string>
</dict>
这应该将PATH设置为您需要的任何东西。
出于某种原因,Jenkins在连接到从属服务器时不会将/ usr / local / bin保留在PATH中。 您可以将其添加到PATH
- 在节点配置上添加环境变量,或
- 使用。在用户文件夹中添加.bashrc文件
PATH="/usr/local/bin:${PATH}"
您可以在launchd.conf文件中设置PATH。有关详细信息,请参阅here。请注意,man launchctl
说“命令可以存储在$ HOME / .launchd.conf或/etc/launchd.conf中以便在launchd启动时读取”,因此您可以在主目录中创建“.launchd.conf”并使用此文件链接中的说明。但据我所知,在launchd.conf文件中你无法将目录添加到PATH,你可以只重写PATH。
您还可以使用/etc/paths.d目录查看here的解决方案
我发现即使为节点设置PATH环境变量也不适用于hombrew Mercurial安装。路径WOULD已设置,但仅适用于脚本构建阶段,而不适用于VCS结帐阶段。这就是我最后做的事情。
- 进入
Manage Jenkins -> Configure System
- 添加新的Mercurial安装
- 把它命名为你想要的(我命名为我的build-mac)
- 对于
Installation Directory
我放了/usr/local
Executable
参数预先设置为INSTALLATION/bin/hg
,所以我就把它留在那里。- 这里的其他所有内容都可以留空
- 进入你的工作并编辑配置
- 在
Source Code Management
下,将Mercurial Version
设置为刚添加的mercurial装置。 - 保存
- $$$
希望能帮助其他人遇到同样的问题,现在我们不允许(默认情况下)在/usr/bin
内部做任何事情。以前我只想在那里使用symlinked hg,但现在使用新的“系统完整性保护”“功能”,这不再是一项微不足道的任务,如果你的Mac奴隶无头,那就更难了。
在以下PATH修改中,=两侧不应有空格:PATH =“/ usr / local / bin:$ PATH”
我将它添加到我在macOS上安装的Jenkins的预构建步骤中。
以上是关于Mac上的jenkins,PATH没有设置正确,没有/ usr / local / bin的主要内容,如果未能解决你的问题,请参考以下文章