簡體   English   中英

Pow,RVM和ZSH沒有合作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM