У меня есть развертывание Capistrano, которому необходимо получить URL-адрес базы данных (используя развертывающую машину, а не цель), вызвав инструментарий Heroku с обратными кавычками Ruby, а именно heroku pgbackups:url --app strong-galaxy-5765
. Я делал это в Capistrano 2 в течение нескольких месяцев, но теперь, после обновления до Ruby 2.2 и Cap 3, вызов команды heroku с использованием обратных кавычек Ruby в задаче Capistrano приводит к пустой строке. И дело не только в этой конкретной команде: даже 'heroku --version' ничего не возвращает.
Точки данных: * стандартные команды оболочки имеют обратную отметку и производят соответствующий вывод * поведение идентично, если я укажу абсолютный путь к команде 'heroku'. * whoami
показывает, что пользователь задачи Capistrano — это я. * все команды heroku, которые я пробовал в общем сценарии Ruby с обратными кавычками, работают нормально. * Все работало нормально, пока я не перешел на Capistrano 3 и Ruby 2.2
Значит, в среде Capistrano должно быть что-то, и я карабкаюсь по стенам, пытаясь понять, что бы это могло быть. Одна возможная подсказка: я получаю следующую ошибку из моей задачи Capistrano при запуске команды «heroku»:
/Users/upstill/.rvm/gems/ruby-2.2.0@global/gems/bundler-1.7.12/lib/bundler/definition.rb:380:in validate_ruby!': Your Ruby version is 1.9.3, but your Gemfile specified 2.2.0 (Bundler::RubyVersionMismatch)
from /Users/upstill/.rvm/gems/ruby-2.2.0@global/gems/bundler-1.7.12/lib/bundler.rb:118:in
setup' из /Users/upstill/.rvm/gems/ ruby-2.2.0@global/gems/bundler-1.7.12/lib/bundler/setup.rb:17:in <top (required)>'
from /usr/local/heroku/ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in
require' из /usr/local/heroku/ruby/lib/ruby/1.9.1/rubygems/custom_require .rb:36:in `require' INFO 'heroku pgbackups:url --app strong-galaxy-5765' => (pid 46786, выход 1)
Примечание: моя среда Ruby — 2.2.0, как показано ВСЕМИ моими Gemfile, :rbenv_ruby в файле Cap deploy.rb, rvm, rbenv и «ruby -v». Все остальное, что делает Capistrano, использует среду 2.2. Но «heroku --version» показывает, что IT создан для версии 1.9.3. Я бы хотел собрать его для версии 2.2, но повторный запуск установщика в новой среде никак не повлиял на спецификацию Ruby.
Ладно, это мой тупик. Любая помощь будет отчаянно оценена.
Спасибо, Стив