簡體   English   中英

使用capistrano的錯誤的ruby / gemset / local變量版本

[英]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_stringset :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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM