/ / गलत रूबी / जेनेट / कैपिटलिस्टो का उपयोग करते हुए स्थानीय चर संस्करण - रूबी-ऑन-रेल, आरवीएम, पर्यावरण-चर, कैपिस्ट्रानो, रूबी-ऑन-रेल -४

कैपिस्ट्रानो का उपयोग कर गलत रूबी / रत्न / स्थानीय परिवर्तनीय संस्करण - रूबी-ऑन-रेल, आरवीएम, पर्यावरण-चर, कैपिस्ट्रानो, रूबी-ऑन-रेल -4

वर्तमान में, मैं अपनी रेल 4 परियोजना को तैनात करने की कोशिश करता हूंcapistrano के साथ। फिलहाल, सर्वर होस्ट के समान है, लेकिन विभिन्न उपयोगकर्ताओं का उपयोग किया जाता है। मुद्दा यह है कि कैपिस्ट्रानो एक ही समय में आरवीएम और स्थानीय चर को सही ढंग से लोड नहीं करता है। स्थानीय चर में सेट किया गया है /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 सेट और सही रूबी / रत्न (2.0.0p0@rails साथ> 100 रत्न)। मुझसे क्या छूट गया?

उत्तर:

उत्तर № 1 के लिए 1

पहली पंक्ति निकालें:

set :default_shell, "bash -l"

यह निष्क्रिय करता है rvm-capistrano एकीकरण।

आप इसके साथ चर पढ़ सकते हैं:

run "source  /etc/profile.d/oracle.sh; echo $TNS_ADMIN"