Камень RVM-capistrano, не может найти ruby-1.9.3-p0
Я установил ruby-1.9.3-p286
на моем сервере с RVM, и подтвердил его ruby -v
в терминале.
Тем не менее, следуя инструкциям по интеграции драгоценных камней RVM-Capistrano,
set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"")
require 'rvm/capistrano'
и работает cap deploy
, он все еще настаивает на том, чтобы бежать ruby-1.9.3-p0
и, конечно, он не может его найти.
Вручную открыть IRB в терминале и запустить ENV['GEM_HOME'].gsub(/.*\//,"")
возвращается ruby-1.9.3-p286
, поэтому я озадачен, почему он продолжает спрашивать ruby-1.9.3-p0
,
Кто-нибудь сталкивался с подобной ситуацией?
1 ответ
Я просто боролся с подобной проблемой, нашел решение и нашел ваш вопрос. Во всяком случае, в моем случае я указал версию Ruby как 1.9.3-p327
везде: по моему .bashrc
файл (rvm --default use 1.9.3-p327
), в приложении .rvmrc
файл (rvm use 1.9.3-p327@my_app_name
), и т.д. cap deploy
или же cap deploy:setup
:
*** [err :: localhost] ruby-1.9.3-p286 is not installed.
** [out :: localhost] To install do: 'rvm install ruby-1.9.3-p286'
*** [err :: localhost] Error: RVM was unable to use '1.9.3@my_app_name'
Оказывается, проблема была в файле конфигурации Capistrano, my_app_name/config/deploy.rb
, Он определил версию Ruby следующим образом:
set :rvm_ruby_string, "1.9.3@#{application}"
Почему Капистрано превратил это в 1.9.3-p286
до сих пор для меня загадка. В любом случае, я добавил патч-уровень Ruby в строку, например так:
set :rvm_ruby_string, "1.9.3-p327@#{application}"
А потом cap deploy:setup
а также cap deploy
начал работать.
Кроме того, я узнал, что Capistrano добавил возможность использования версии Ruby, указанной в приложении. .rvmrc
файл ( см. это), так что вы можете просто установить эту строку в
set :rvm_ruby_string, :local
и больше никогда не придется к нему прикасаться, даже если вы измените версию Ruby в .rvmrc
,