[英]Pow, RVM and ZSH not working together
我正試圖讓Octopress(http://octopress.org/)工作,但我遇到了一些問題。 我正在使用POW(http://pow.cx/),它似乎沒有為我加載正確的Ruby版本(使用RVM)。
它始終使用RVM默認ruby版本,而不是.rvmrc中指定的版本。 我在RVM中的默認Ruby版本是:ruby-1.9.3-p125。
在我的.rvmrc文件中我有這個: rvm use 1.9.2
我訪問我的網站時在瀏覽器中出現此錯誤:
LoadError: cannot load such file -- bundler/setup
~/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
~/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
~/Sites/Lejnus/lejnus/config.ru:1:in `block in <main>'
~/Library/Application Support/Pow/Versions/0.3.2/node_modules/nack/lib/nack/builder.rb:4:in `instance_eval'
~/Library/Application Support/Pow/Versions/0.3.2/node_modules/nack/lib/nack/builder.rb:4:in `initialize'
~/Sites/Lejnus/lejnus/config.ru:1:in `new'
~/Sites/Lejnus/lejnus/config.ru:1:in `<main>'
~/Library/Application Support/Pow/Versions/0.3.2/node_modules/nack/lib/nack/server.rb:50:in `eval'
~/Library/Application Support/Pow/Versions/0.3.2/node_modules/nack/lib/nack/server.rb:50:in `load_config'
~/Library/Application Support/Pow/Versions/0.3.2/node_modules/nack/lib/nack/server.rb:43:in `initialize'
~/Library/Application Support/Pow/Versions/0.3.2/node_modules/nack/lib/nack/server.rb:13:in `new'
~/Library/Application Support/Pow/Versions/0.3.2/node_modules/nack/lib/nack/server.rb:13:in `run'
~/Library/Application Support/Pow/Versions/0.3.2/node_modules/nack/bin/nack_worker:4:in `<main>'
當我的.rvmrc文件中指定1.9.2時,為什么使用1.9.3-p125? 如果我將1.9.2設為默認值,它當然有效......
是不是應該為我做這個魔術並使用正確的紅寶石版本?
好吧,看起來POW正在遠離RVM。
我需要在我的項目root中運行它以使其正常工作: rvm env . -- --env > .powenv
rvm env . -- --env > .powenv
我通過使用以下代碼在項目的根目錄添加.powrc來對問題進行排序
if [ -f "$rvm_path/scripts/rvm" ] && [ -f ".rvmrc" ]; then
source "$rvm_path/scripts/rvm"
source ".rvmrc"
fi
[ 編輯補充:這在Pow文檔中推薦]
這就是我解決問題的方法:
rvm env -- `rvm current` > .powenv
您還可以創建一個rvm掛鈎 ( 如此處所述 ),以便在您更改當前ruby env時自動切換.powenv:
# ~/.rvm/hooks/after_use_update_powrc for file in `ls ~/.pow/` ; do POW_LINK_TARGET=`readlink ~/.pow/$file` if [ `pwd` = $POW_LINK_TARGET ]; then rvm env -- ``rvm current`` > .powenv fi done
別忘了讓它可執行:
chmod +x ~/.rvm/hooks/after_use_update_powrc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.