Kann nicht bereitstellen Rails-app mit Capistrano und RVM
Ich habe eine Rails-app, die ich habe bereitstellen mit Capistrano. Ich installiert RVM auf dem server, da wollte ich eine neuere version von Ruby und fügte hinzu, dass dieses zu meinem bereitstellen.rb-Datei (nach diversen Anleitungen die ich gefunden):
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require 'rvm/capistrano'
set :rvm_ruby_string, '1.9.2'
set :rvm_type, :user
Bei mir laufen cap deploy
, geschieht dies:
[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
Warum ist capistrano mit Ruby 1.8? Mein Weg ist offensichtlich Durcheinander, zu.
Hier ist die Ausgabe von rvm info
auf staging.example.com:
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/ruby-1.9.2-p180@global/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/ruby-1.9.2-p180@global"
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: ""
- Sind Sie mit einem .rvmrc Datei mit Ihrem Projekt? Wenn dem so ist, ist es auf der rechten ruby und gemset?
- Hier ist, was in meinem .rvmrc:
rvm_gemset_create_on_use_flag=1 rvm_trust_rvmrcs_flag=1
Nicht sicher, wie es zu tun, was Sie vorgeschlagen sind. - Tut mir Leid für die späte Antwort. Die .rvmrc-Datei wird verwendet, um anzugeben, welche ruby und gemset, die Sie verwenden möchten mit diesem Projekt. Ich Regel erstellen, die mir wie diese: > echo "rvm 1.9.2@myproject" > .rvmrc Jetzt wenn ich die cd in das Verzeichnis, rvm schaltet sich automatisch zu ruby version 1.9.2 und meine gemset über myproject.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigentlich die neueste Dokumentation über rvm-capistrano-Dokumentation Seite erklärt, dass es sein muss, so etwas wie dieses:
Stellen Sie sicher, dass bundler installiert und den richtigen Weg beim laufen
bundle install
im server. Wenn es nicht installiert ist, dann führen Siegem install bundler
zu installieren.Wenn du bundler installiert, dies zu tun:
Ändern Sie diese Zeile -->
set :rvm_ruby_string, '1.9.2'
zu diesem -->
set :rvm_ruby_string, 'ruby-1.9.2-p180'
dies funktioniert für mich.
wissen, Ihre rubys Versionen -->
rvm list