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