【问题标题】:Despite RVM-plugin Jenkins uses wrong ruby version尽管 RVM 插件 Jenkins 使用了错误的 ruby​​ 版本
【发布时间】:2014-06-30 06:26:03
【问题描述】:

Jenkins 在 ubuntu 机器上运行。它有一个特殊的用户 jenkins 用于执行作业。
RVM 已安装并在服务器上的 ssh shell 中,以 jenkins 用户身份登录,一切正常。(如果我将 RVM 设置为使用 ruby​​ 1.9.3 ruby -vreturns 1.9.3 作为版本)
我使用 Jenkins 的 RVM 插件并将其设置为使用 1.9.3

Jenkins 对 RVM 的输出: 捕获 'rvm use 1.9.3' 产生的环境变量 $ bash -c 导出
$ bash -c "test -f ~/.rvm/scripts/rvm"
$ bash -c "test -f /usr/local/rvm/scripts/rvm"
[工作空间] $ bash -c " source /usr/local/rvm/scripts/rvm && rvm 使用 --install --create 1.9.3 && export > rvm.env"
使用 /usr/local/rvm/gems/ruby-1.9.3-p0


但是,如果我以后想执行我的脚本,它会使用 ruby​​ 版本 1.8.7。

ruby 版本和环境的输出:

  + which ruby  
  /usr/bin/ruby  
  + ruby -v  
  ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]  
  + rvm info  

 ruby-1.9.3-p0:  

  system:  
      uname:       "Linux h1332957.stratoserver.net 2.6.32-042stab078.27 #1 SMP Mon Jul 1 20:48:07 MSK 2013 i686 GNU/Linux"  
      bash:        "/bin/bash => GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)"  
      zsh:         " => not installed"  
   rvm:  
      version:    "rvm 1.9.2 by Wayne E. Seguin (wayneeseguin@gmail.com [https://rvm.beginrescueend.com/]"  
   ruby:  
      interpreter:  "ruby"  
      version:      "1.8.7"  
      date:         "2010-01-10"  
      platform:     "i486-linux"  
      patchlevel:   "2010-01-10 patchlevel 249"  
      full_version: "ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]"  
   homes:  
      gem:          "/usr/local/rvm/gems/ruby-1.9.3-p0"  
      ruby:         "/usr/local/rvm/rubies/ruby-1.9.3-p0"  
   binaries:  
      ruby:         "/usr/bin/ruby"  
      irb:          "/usr/bin/irb"  
      gem:          "/usr/bin/gem"  
      rake:         "/usr/bin/rake"  
   environment:  
      PATH:         "/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/rvm/bin:/usr/local/rvm/bin"  
      GEM_HOME:     "/usr/local/rvm/gems/ruby-1.9.3-p0"  
      GEM_PATH:     "/usr/local/rvm/gems/ruby-1.9.3-p0:/usr/local/rvm/gems/ruby-1.9.3-p0@global"  
      MY_RUBY_HOME: "/usr/local/rvm/rubies/ruby-1.9.3-p0"  
      IRBRC:        "/usr/local/rvm/rubies/ruby-1.9.3-p0/.irbrc"  
      RUBYOPT:      ""  
      gemset:       ""  

问题:
如何让 Jenkins 改用 ruby​​ 版本 1.9.3?

【问题讨论】:

    标签: ruby ubuntu jenkins rvm hudson


    【解决方案1】:

    添加“rvm use x.x.x”对我不起作用。但它确实产生了一条有用的错误消息:

    RVM 不是函数,使用 'rvm use ...' 选择红宝石将不起作用。

    您需要更改终端模拟器首选项以允许登录 shell。 有时需要使用/bin/bash --login 作为命令。 示例请访问https://rvm.io/integration/gnome-terminal/

    我的终端模拟器也已经允许登录 shell。

    在 bash 调用中添加“--login”使其工作。

    【讨论】:

      【解决方案2】:

      Rvm 在您的工作区创建一个名为“rvm.env”的环境文件。如果添加:

      source rvm.env

      对于您的所有 shell 脚本,您将获得正确的环境,而无需手动设置 rvm。

      【讨论】:

        【解决方案3】:

        我通过采购 rvm 解决了这个问题。
        我将脚本更新为如下所示:

         #!/bin/bash
         source "/usr/local/rvm/scripts/rvm"
         rvm use 1.9.3
         rvm info
        

        现在 rvm info 的输出是正确的。
        最重要的是第一行和第二行。


        rvm info输出:

         ruby-1.9.3-p0:
        
           system:
             uname:       "Linux h1332957.stratoserver.net 2.6.32-042stab078.27 #1 SMP Mon Jul 1 20:48:07 MSK 2013 i686 GNU/Linux"
             bash:        "/bin/bash => GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)"
             zsh:         " => not installed"
        
           rvm:
             version:      "rvm 1.9.2 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]"
        
           ruby:
             interpreter:  "ruby"
             version:      "1.9.3p0"
             date:         "2011-10-30"
             platform:     "i686-linux"
             patchlevel:   "2011-10-30 revision 33570"
             full_version: "ruby 1.9.3p0 (2011-10-30 revision 33570) [i686-linux]"
        
           homes:
             gem:          "/usr/local/rvm/gems/ruby-1.9.3-p0"
             ruby:         "/usr/local/rvm/rubies/ruby-1.9.3-p0"
        
           binaries:
             ruby:         "/usr/local/rvm/rubies/ruby-1.9.3-p0/bin/ruby"
             irb:          "/usr/local/rvm/rubies/ruby-1.9.3-p0/bin/irb"
             gem:          "/usr/local/rvm/rubies/ruby-1.9.3-p0/bin/gem"
             rake:         "/usr/local/rvm/gems/ruby-1.9.3-p0/bin/rake"
        
           environment:
             PATH:         "/usr/local/rvm/gems/ruby-1.9.3-p0/bin:/usr/local/rvm/gems/ruby-1.9.3-p0@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p0/bin:/usr/local/rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
             GEM_HOME:     "/usr/local/rvm/gems/ruby-1.9.3-p0"
             GEM_PATH:     "/usr/local/rvm/gems/ruby-1.9.3-p0:/usr/local/rvm/gems/ruby-1.9.3-p0@global"
             MY_RUBY_HOME: "/usr/local/rvm/rubies/ruby-1.9.3-p0"
             IRBRC:        "/usr/local/rvm/rubies/ruby-1.9.3-p0/.irbrc"
             RUBYOPT:      ""
             gemset:       ""
        

        【讨论】:

        • 谢谢你,薄荷醇!你救了我的命! :)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 2016-06-10
        • 2012-12-20
        • 2022-11-24
        相关资源
        最近更新 更多