2014-05-12 67 views
1

Jenkins在ubuntu機器上運行。它有一個用於執行作業的特殊用戶jenkins。
RVM安裝在服務器上的ssh shell中,以jenkins用戶身份登錄,一切正常。(如果我設置RVM使用ruby 1.9.3 ruby -v返回1.9.3作爲版本)
我使用RVM -plugin詹金斯,並設置詹金斯爲RVM使用1.9.3儘管RVM插件Jenkins使用錯誤的紅寶石版本

輸出: 通過「RVM使用1.9.3」 $慶典-c出口
$慶典-c產生的捕捉環境變量「test -f〜/ .rvm/scripts/rvm」
$ bash -c「test -f/usr/local/rvm/scripts/rvm」
[w orkspace] $的bash -c 「源在/ usr /本地/ RVM /腳本/ RVM & & RVM使用--install --create 1.9.3 & &出口> rvm.env」
使用的/ usr /本地/ RVM /寶石/ruby-1.9.3-p0


但是,如果我後來想執行我的腳本它使用紅寶石版本1.8.7。

輸出紅寶石版本和環境:

+ 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 ([email protected] [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/[email protected]" 
     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:  "" 

問:
我怎樣才能讓詹金斯使用Ruby版本1.9.3呢?

回答

1

我通過採購rvm解決了問題。
我更新了我的腳本是這樣的:

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

現在,通過RVM信息輸出是正確的。
最重要的是第一和第二行。


輸出由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 ([email protected]) [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/[email protected]/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/[email protected]" 
    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:  "" 
1

RVM上創建工作區名爲 「rvm.env」 環境文件。如果添加:

source rvm.env

到所有shell腳本,你會得到正確的環境,而無需手動設置RVM。