के साथ रेल ऐप को तैनात नहीं किया जा सकता है मेरे पास एक रेल ऐप है जिसे मैं कैपिस्ट्रानो के साथ तैनात कर रहा हूं। मैं सर्वर पर RVM स्थापित के बाद से मैं रूबी के एक नए संस्करण का उपयोग करना चाहता है और मेरे deploy.rb फ़ाइल को यह जोड़ा (विभिन्न निर्देशों के अनुसार मैंने पाया):कैपिस्ट्रानो और आरवीएम
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require 'rvm/capistrano'
set :rvm_ruby_string, '1.9.2'
set :rvm_type, :user
जब मैं चलाने के लिए, cap deploy
, ऐसा होता है:
[staging.example.com] executing command
** [out :: staging.example.com] /usr/local/lib/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem bundler (>= 0) (
** [out :: staging.example.com] Gem::LoadError)
** [out :: staging.example.com] from /usr/local/lib/site_ruby/1.8/rubygems.rb:214:in `activate'
** [out :: staging.example.com] from /usr/local/lib/site_ruby/1.8/rubygems.rb:1082:in `gem'
** [out :: staging.example.com] from /usr/bin/bundle:18
command finished in 801ms
*** [deploy:update_code] rolling back
* executing "rm -rf /home/example/staging.example.com/releases/20110714180125; true"
servers: ["staging.example.com"]
[staging.example.com] executing command
command finished in 895ms
failed: "rvm_path=$HOME/.rvm/ /usr/local/bin/rvm-shell '1.9.2' -c 'bundle install --gemfile /home/example/staging.example.com/releases/20110714180125/Gemfile --path /home/example/staging.example.com/shared/bundle --deployment --quiet --without development production'" on staging.example.com
रूबी 1.8 का उपयोग कर कैपिस्ट्रानो क्यों है? मेरा रास्ता स्पष्ट रूप से गड़बड़ भी है।
यहाँ staging.example.com पर rvm info
के उत्पादन में है:
ruby-1.9.2-p180:
system:
uname: "Linux staging 2.6.39.1-linode34 #1 SMP Tue Jun 21 10:29:24 EDT 2011 i686 GNU/Linux"
bash: "/bin/bash => GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)"
zsh: " => not installed"
rvm:
version: "rvm 1.6.22 by Wayne E. Seguin ([email protected]) [https://rvm.beginrescueend.com/]"
ruby:
interpreter: "ruby"
version: "1.9.2p180"
date: "2011-02-18"
platform: "i686-linux"
patchlevel: "2011-02-18 revision 30909"
full_version: "ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]"
homes:
gem: "/home/example/.rvm/gems/ruby-1.9.2-p180"
ruby: "/home/example/.rvm/rubies/ruby-1.9.2-p180"
binaries:
ruby: "/home/example/.rvm/bin/ruby"
irb: "/home/example/.rvm/bin/irb"
gem: "/home/example/.rvm/bin/gem"
rake: "/home/example/.rvm/bin/rake"
environment:
PATH: "/home/example/.rvm/bin:/home/example/.rvm/gems/ruby-1.9.2-p180/bin:/home/example/.rvm/gems/[email protected]/bin:/home/example/.rvm/rubies/ruby-1.9.2-p180/bin:/home/example/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/ruby/bin"
GEM_HOME: "/home/example/.rvm/gems/ruby-1.9.2-p180"
GEM_PATH: "/home/example/.rvm/gems/ruby-1.9.2-p180:/home/example/.rvm/gems/[email protected]"
MY_RUBY_HOME: "/home/example/.rvm/rubies/ruby-1.9.2-p180"
IRBRC: "/home/example/.rvm/rubies/ruby-1.9.2-p180/.irbrc"
RUBYOPT: ""
gemset: ""
आप के साथ एक .rvmrc फ़ाइल का उपयोग कर रहे आपका प्रोजेक्ट? यदि हां, तो क्या यह सही रूबी और रत्न की ओर इशारा करता है? –
यहां मेरे .rvmrc में क्या है: 'rvm_gemset_create_on_use_flag = 1 rvm_trust_rvmrcs_flag = 1' यह सुनिश्चित नहीं है कि आप जो सुझाव दे रहे हैं उसे करने के लिए इसे कैसे प्राप्त करें। – Devin
मुझे देर से प्रतिक्रिया के लिए खेद है। .rvmrc फ़ाइल का उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि आप इस प्रोजेक्ट के साथ किस रूबी और रत्न का उपयोग करना चाहते हैं। मैं आमतौर पर इस तरह मेरा निर्माण करता हूं:> गूंज "आरवीएम [email protected]"> .rvmrc अब जब मैं उस निर्देशिका में सीडी करता हूं, तो आरवीएम स्वचालित रूप से रूबी संस्करण 1.9.2 पर स्विच हो जाएगा और मेरे रत्न को myproject पर बदल देगा। –