macOS Jenkins使用系统ruby而不是安装的ruby

mznpcxlj  于 2023-06-28  发布在  Jenkins
关注(0)|答案(2)|浏览(203)

客户端在macOS机器上安装了jenkins。它正在进行iOS构建,并使用bundler安装一些gem。一个gem最近开始要求一个依赖项,而这个依赖项又要求ruby >= 2.1

Installing jwt 2.1.0
Gem::InstallError: jwt requires Ruby version >= 2.1.
An error occurred while installing jwt (2.1.0), and Bundler cannot continue.

首先,我在macOS机器上安装了rvm和ruby2.1.0

osxbuildserver:~ jenkins$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin14.0]

而对于ssh登录用户,它显示得很好。问题是,即使是坚韧的Jenkins也会在同一个Jenkins用户下运行

root            15102     1 15102      0    0 Ss     ??    0:00.04 sshd: jenkins [priv] 
jenkins         15106 15102 15102      0    0 S      ??    0:00.03 sshd: jenkins@ttys000

它仍然使用2.0.0的系统Ruby。在其中一个版本中,我添加了一个shell脚本,其中包含ruby -v

[EnvInject] - Variables injected successfully.
[workspace] $ /bin/sh -xe     /var/folders/6v/xlw3p2pn47d2jl_jghf25dn00000gr/T/hudson73325394438439334.sh    
+ ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]

呼叫

ssh jenkins@osxbuild "echo $PATH"

从我的本地机器返回错误的路径

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

但是用同一个用户登录是可以的

osxbuildserver:~ jenkins$ echo $PATH
/Users/jenkins/.rvm/gems/ruby-2.1.0/bin:/Users/jenkins/.rvm/gems/ruby-2.1.0@global/bin:/Users/jenkins/.rvm/rubies/ruby-2.1.0/bin.... etc

我已经试过这里的答案Jenkins using System Ruby - use rvm ruby?,但它没有帮助。
我的.bash_profile内容

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
export ANDROID_HOME=/Users/jenkins/Library/Android/sdk
export ANDROID_SDK=$ANDROID_HOME
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$JAVA_HOME
export TESSDATA_PREFIX=$HOME/tesseract-ocr

source ~/.profile
source $HOME/.rvm/scripts/rvm
hpcdzsge

hpcdzsge1#

这个问题很老了,但可能有人会用我的解决方案。我复制了所有给我echo $PATH的东西。然后我打开Jenkin的配置,发现“全局属性”。我添加了PATH,作为一个值,我从终端添加了值。

lf3rwulv

lf3rwulv2#

我把这个问题搞砸了几天,最后它工作得很好,感谢@BlackRainbow的灵感

我到底在做什么

1.使用rbenv管理Ruby环境
1.打开终端并执行echo $PATH
1.复制结果并粘贴到Jenkinsfile
1.重新尝试构建您的管道
1.就是这样,它在我的环境中工作得很好

附件:

  • 步骤1-2配置Ruby并获取路径环境 * x1c 0d1x

  • 步骤2-3配置Jenkinsfile*

  • 第4步构建管道 *

相关问题