我希望RUBYOPT=-r openssl
僅適用於使用Ruby 1.9.x的我的gemsets。 如果我在全球範圍內設置了這個集合,Ruby 1.8.x會抱怨「RUBYOPT中的非法切換...」。如何爲特定的RVM版本設置RUBYOPT?
謝謝。
我希望RUBYOPT=-r openssl
僅適用於使用Ruby 1.9.x的我的gemsets。 如果我在全球範圍內設置了這個集合,Ruby 1.8.x會抱怨「RUBYOPT中的非法切換...」。如何爲特定的RVM版本設置RUBYOPT?
謝謝。
在~/.rvm/hooks/after_use
,提出:
if echo $rvm_ruby_version | grep -q '1.9'; then
export RUBYOPT='-r openssl'
else
export RUBYOPT=
fi
謝謝。很好的答案。 注意:我沒有明確地使用gemset和RVM USE ...我依靠.rvmrc來切換。但是.rvmrc不會使用'use'來切換,所以實際上並不會觸發after_use鉤子。我想我可以改變.rvmrc來'使用'而不是它在做什麼。任何其他想法? – 2011-05-25 15:55:21
這不依賴於gemsets甚至是明確的使用,隱式使用也會觸發它(例如'rvm 1.9.2')。請記住.rvmrc只是一個shell腳本。我剛剛在一個項目特定的.rvmrc中用'rvm 1.9.2'進行了測試,它的工作原理是一樣的。也許再次嘗試使用新的終端,如果它仍然失敗,請在您的.rvmrc中加入一些調試「echo」,並確保它正在運行。 – gtd 2011-05-25 17:33:49
再次感謝。我看到項目.rvmrc正在運行,當我改變目錄時(放入回聲)。我在after_use中加入了一些回聲,並確認它沒有被我的.rvmrc設置gemset的方式調用: if [[-d「$ {rvm_path: - $ HOME/.rvm}/environments」\ && -s「$ {rvm_path: - $ HOME/.rvm}/environments/[email protected]」]];然後 \。 「$ {rvm_path: - $ HOME /.rvm}/environments/[email protected]」 else ... 我確認它沒有運行echo和env都沒有運行不顯示RUBYOPT。如果我將rvmrc更改爲rvm使用...它可以工作。 – 2011-05-25 19:02:18
我聽說的JRuby也檢查一個單獨的環境變量,但我不能谷歌它是什麼。 – 2011-05-24 23:30:26