Mac上的jenkins,路径设置不正确,没有/usr/local/bin

icnyk63a  于 2023-03-01  发布在  Jenkins
关注(0)|答案(6)|浏览(249)

我最近安装了Jenkins,使用自制程序。我也安装了Mercurial使用自制程序。
我可以成功地克隆一个HG回购协议就好了-从终端。但如果我尝试做同样的事情作为Jenkins工作的一部分,它失败了。
所以,在by job中,我告诉Jenkins运行一个shell脚本echo $PATH。果然,路径/usr/local/bin不在那里。如果我从终端执行相同的命令,它就在那里。

那么,修改PATH的最佳方法是什么,以便Jenkins在我从终端回显它时拉取我正在使用的相同PATH?

请注意,Jenkins是从我登录进行这些测试的同一个用户帐户运行的,所以我不明白为什么会发生这种情况。

gzszwxb4

gzszwxb41#

在Jenkins的launchd .plist文件中,可以使用以下命令设置PATH环境变量:

<key>EnvironmentVariables</key>
<dict>
    <key>PATH</key>
    <string>(insert your path value here)</string>
</dict>

这样就可以将PATH设置为所需的任何路径。

bq3bfh9z

bq3bfh9z2#

由于某种原因,Jenkins在连接到从机时没有将/usr/local/bin保留在PATH中。
您可以通过以下方式将其添加到PATH中

  • 在节点配置中添加环境变量,或
  • 使用在用户文件夹中添加.bashrc文件
PATH="/usr/local/bin:${PATH}"

注:Mac客户端必须断开连接,然后在编辑~/.bashrc后通过Jenkins Web应用程序重新连接

zbq4xfa0

zbq4xfa03#

我发现即使为节点设置PATH环境变量也不适用于hombrew Mercurial安装。路径会被设置,但只适用于脚本构建阶段,而不适用于VCS checkout 阶段。以下是我最终所做的。
1.进入Manage Jenkins -> Configure System
1.添加新的Mercurial安装
1.随便你怎么命名(我把我的命名为build-mac)
1.对于Installation Directory,我输入/usr/local

  1. Executable参数被预先设置为INSTALLATION/bin/hg,所以我就不做修改了。
    1.这里的其他内容可以留空
    1.进入作业并编辑配置
    1.在Source Code Management下,将Mercurial Version设置为您刚刚添加的mercurial安装。
    1.保存
    1.$$
    希望这能帮助其他遇到同样问题的人,现在我们不允许(默认情况下)在/usr/bin中做任何事情了。以前我只会在那里符号链接hg,但现在有了新的"系统完整性保护""功能",这不再是微不足道的任务,如果你的Mac奴隶是无头的,甚至会更困难。
gkn4icbw

gkn4icbw4#

您可以在launchd.conf文件中设置PATH。有关详细信息,请参见here。注意,man launchctl表示'命令可以存储在$HOME/.launchd.conf或/etc/launchd.conf中,以便在launchd启动时读取',所以你可以在你的主目录下创建.launchd.conf文件,并使用这个文件的链接中的说明。但是据我所知,在launchd.conf文件中你可以'不要在PATH中添加目录,你可以重写PATH。
您还可以使用/etc/paths.d目录查看here以了解解决方案

sulc1iza

sulc1iza5#

在以下PATH修改中,=的两侧不应有空格:路径="/usr/本地/bin:$路径”
我把它添加到我在macOS上安装的Jenkins的预构建步骤中。

ar7v8xwq

ar7v8xwq6#

管理Jenkins -〉配置系统-〉环境变量-〉添加

  • 名称=路径+附加
  • 值= /usr/本地/bin

相关问题