2014-11-06 70 views
3

我經常在Ruby中做很多腳本編寫,有時我在Jenkins作業上運行這些腳本,或者將它們放在別處可以在本地運行的地方。有沒有辦法告訴RVM使用至少2.0.0的最新版本的Ruby?

我很想在.rvmrc類似指定:

  • 使用最新版本的安裝
  • 除非是小於2的Ruby紅寶石的,在這種情況下失敗。

這樣我就可以依靠Ruby 2語言的變化(例如命名參數),但不強制運行腳本的環境安裝新的ruby,如果它已經有2.0.0或2.1.1或2.1。 4安裝。

+0

你試過任何ruby解決方案,而不是.rvmrc嗎?通常RUBY_VERSION常量在所有的ruby環境中都存在。 – bibstha 2014-11-06 21:05:19

回答

0

您應該能夠在.rvmrc文件中運行bash命令。所以你可以檢查最新版本,並要求它,如果沒有找到,默認爲2.0.0版本。我不知道你在想什麼,因爲這個文件在終端會話啓動時被加載,並且中斷不好。

這是我使用rbenv sine製作的一個示例,我沒有安裝rvm

RV=`rbenv versions | grep -E " 2\.\d+\.\d+\S*" | grep -o -E "2\.\d+\.\d+\S*" | sort | tail -n 1` 
if [[ $RV ]] 
    then echo $RV 
    else echo "DEFAULT" 
fi 

這個例子只是輸出最高版本的2.x.x ruby​​它發現否則它說DEFAULT。對於RVM,以下文件可以在您的.rvmrc文件中運行,但我無法自行測試。我基於文檔中的輸出結果。您可能需要稍微調整一下。

RV=`rbenv versions | grep -E "ruby-2\.\d+\.\d+\S*" | grep -o -E "2\.\d+\.\d+\S*" | sort | tail -n 1` 
if [[ $RV ]] 
    then rvm use $RV 
    else rvm use 2.0.0 
fi 
相關問題