Pow, RVM и ZSH не работают вместе

Я пытаюсь заставить работать Octopress (http://octopress.org/), но у меня есть некоторые проблемы. Я использую POW (http://pow.cx/), и он, кажется, не загружает правильную версию Ruby для меня (используя RVM).

Он всегда использует версию ruby ​​по умолчанию для RVM, а не ту, которая указана в.rvmrc. Моя версия Ruby по умолчанию в RVM: 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>'

Почему используется 1.9.3-p125, если в моем файле.rvmrc указан 1.9.2? Если я установлю 1.9.2 по умолчанию, это работает, конечно...

Разве это не должно творить эту магию для меня и использовать правильные рубиновые версии?

3 ответа

Решение

Хорошо, похоже, что военнопленный уходит от RVM.

Мне нужно было запустить это в корне моих проектов, чтобы это заработало: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 ( как здесь прокомментировано) для автоматического переключения.powenv при изменении текущего ruby ​​env:

# ~ /.rvm / hooks / after_use_update_powrc
для файла в `ls ~/.pow/`; делать
  POW_LINK_TARGET=`readlink ~/.pow/$file`

  if [ `pwd` = $POW_LINK_TARGET ]; затем
    rvm env - ``rvm current`` > .powenv
  фи
сделанный

Не забудьте сделать его исполняемым:

chmod +x ~/.rvm/hooks/after_use_update_powrc

Другие вопросы по тегам