Jenkins使用了错误版本的Ruby(rvm)

Jenkins使用了错误版本的Ruby(rvm),jenkins,rvm,jenkins-plugins,Jenkins,Rvm,Jenkins Plugins,有下一种情况: 使用詹金斯 已安装具有不同ruby版本的rvm(2+) 安装 在ruby版本为ruby-2.3的“构建环境”中启用选项“在RVM管理的环境中运行构建”。0@global 现在谈谈这个问题。每次开始jenkins作业后,我都可以看到下一个输出: Capturing environment variables produced by 'rvm use ruby-2.3.0@global' $ bash -c export [workspace] $ bash -c "

有下一种情况:

  • 使用詹金斯
  • 已安装具有不同ruby版本的rvm(2+)
  • 安装
在ruby版本为ruby-2.3的“构建环境”中启用选项“在RVM管理的环境中运行构建”。0@global

现在谈谈这个问题。每次开始jenkins作业后,我都可以看到下一个输出:

Capturing environment variables produced by 'rvm use ruby-2.3.0@global'
$ bash -c export
[workspace] $ bash -c " source /usr/local/rvm/scripts/rvm && rvm use --install --create ruby-2.3.0@global && export > rvm.env"
Using /usr/local/rvm/gems/ruby-2.3.0 with gemset global
...
看来一切都应该正常。 但事实上,jenkins使用的是ruby-2.2.0,因为我在下面的日志中发现:

+++ __path_to_ruby=/usr/local/rvm/rubies/ruby-2.2.0/bin/ruby
+++ [[ -z /usr/local/rvm/rubies/ruby-2.2.0/bin/ruby ]]
+++ [[ /usr/local/rvm/rubies/ruby-2.2.0/bin/ruby != \/\u\s\r\/\l\o\c\a\l\/\r\v\m* ]]
+++ [[ /usr/local/rvm/rubies/ruby-2.2.0/bin/ruby == \/\u\s\r\/\l\o\c\a\l\/\r\v\m\/\b\i\n\/\r\u\b\y ]]
+++ [[ /usr/local/rvm/rubies/ruby-2.2.0/bin/ruby == \/\u\s\r\/\l\o\c\a\l\/\r\v\m* ]]
+++ [[ -z /usr/local/rvm/gems/ruby-2.2.0 ]]
+++ [[ -z /usr/local/rvm/gems/ruby-2.2.0:/usr/local/rvm/gems/ruby-2.2.0@global ]]
...
下一个问题来自这里:

Gem::InstallError: activesupport requires Ruby version >= 2.2.2.
另外,如果我在“executeshell”区域键入
ruby-v
命令,那么在日志中我会看到这一点

+ ruby -v
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]
我还尝试在“executeshell”中直接使用ruby-2.3.0启动命令
rvm

我还将其添加到
/var/lib/jenkis/.bashrc

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
并尝试将
$HOME/.rvm
更改为
/usr/local/rvm

但每次的结果都是一样的。詹金斯不使用ruby-2.3.0


请帮我找出我错过了什么?

我也遇到了这个问题。事实证明,如果将rvm安装为root,则会出现问题。我们必须完全卸载rvm并以jenkins用户的身份重新安装,之后插件正确加载了rubies

您可以通过列出Jenkins的$HOME变量所指向的目录的内容来检测这个问题。如果没有.rvm目录,则可能需要重新安装