[英]Wrong ruby/gemset/local variable version using capistrano
当前,我尝试使用capistrano部署我的Rails 4项目。 目前,服务器与主机相同,但是使用了不同的用户。 问题是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 :rvm_ruby_string
得到与使用两行相同的错误结果( set :default_shell, "bash -l"
和set :rvm_ruby_string, "..."
)
但我想设置局部变量$TNS_ADMIN
并设置正确的ruby / gemset(2.0.0p0@rails包含100多个宝石)。 我错过了什么?
删除第一行:
set :default_shell, "bash -l"
它禁用rvm-capistrano
集成。
您可以通过以下方式读取变量:
run "source /etc/profile.d/oracle.sh; echo $TNS_ADMIN"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.