Неправильная версия ruby ​​/ gemset / локальной переменной с использованием capistrano

В настоящее время я пытаюсь развернуть свой проект Rails 4 с помощью capistrano. На данный момент сервер такой же, как и хост, но используются разные пользователи. Проблема в том, что capistrano не загружает корректно RVM И локальные переменные одновременно. Локальная переменная установлена ​​в /etc/profile.d/oracle.sh

set :default_shell, "bash -l"
set :rvm_ruby_string, "ruby-2.0.0-p0@rails4"
require "rvm/capistrano"
set :use_sudo: false
...
...
desc "tester"
task :tester, hosts: "localhost" do
  run "echo $TNS_ADMIN"
  run "ruby -v"
  run "gem list"
end

Если я использую эти настройки, я получаю:

echo $TNS_ADMIN --> "correct path"
ruby -v --> 2.0.0p195 (wrong version)
gem list --> 5 gems (wrong)

Если я не использую set :default_shell, "bash -l", я получаю:

echo $TNS_ADMIN --> "" (wrong)
ruby -v --> 2.0.0p0 (correct version)
gem list --> > 100 gems (correct)

Если я использую set :default_shell, :bash, я получаю:

echo $TNS_ADMIN --> "" (wrong)
ruby -v --> 1.9.3p194 (wrong version = ruby version of the system)
gem list --> > 5 gems (wrong)

Если я не использую set :rvm_ruby_string, я получаю такой же неправильный результат, как и при использовании обеих строк (set :default_shell, "bash -l" и set :rvm_ruby_string, "...")

Но я хотел бы установить локальную переменную $TNS_ADMIN и правильный набор ruby ​​/ gemset (2.0.0p0@rails с> 100 драгоценными камнями). Что я пропустил?


person Bjoernsen    schedule 11.06.2013    source источник


Ответы (1)


удалите первую строку:

set :default_shell, "bash -l"

он отключает rvm-capistrano интеграцию.

Вы можете прочитать переменную с помощью:

run "source  /etc/profile.d/oracle.sh; echo $TNS_ADMIN"
person mpapis    schedule 11.06.2013
comment
Спасибо, это работает. Есть ли возможность использовать этот файл для большинства / каждой команды запуска? Возможно, мне в будущем понадобятся другие переменные. Было бы неплохо иметь такой же ENV, что и пользователь сервера. - person Bjoernsen; 12.06.2013