Ich versuche, meine erste App auf einem Server mit Capistrano zu implementieren, und ich bin ein bisschen verloren mit Verwaltung von Gemsets und Ruby-Version.Bundler/Capistrano installiert keine Edelsteine mit korrekter Ruby-Version
Das sind meine (Server und Workstation) Versionen:
- Rails 3.2.8
- RVM 1.16.17
- Gem 1.8.24
- Bündler 1.2.1
- pg gem 0.14.1
Meine Schmuckstücke sind:
Gemsets für Rubin-1.9.3-P194
- (default)
- global
- = (in /usr/local/rvm/gems/ruby-1.9.3-p194 gefunden)> rail3dev20120606
stelle ich die Standard gemset mit:
rvm use [email protected] --default --passenger
Als ich führen ein:
cap bundle:install
Die Aufgabe Ende mit Erfolg, aber wenn ich ein:
gem list
Es gibt viele fehlt gems obwohl sie in meinem Gemfile vorhanden sind. Wenn ich meine Edelsteine in /var/www/Opf/shared/Bündel/Rubin überprüfen/ finde ich einen Ordner 1.9.1 und in /var/www/opf/shared/bundle/ruby/1.9 genannt .1/Edelsteine / Ich kann alle meine benötigten Edelsteine anzünden (in Gemfile angegeben). Ich bin sicher, es gibt ein Problem mit der Ruby-Version, aber wie löse ich das?
Im Moment, wenn ich jeden Rake Befehl tun, bekam ich einen Rubin crash [Bug] Segmentation fault, da sie versuchen, die db und mit postgresql_adapter zuzugreifen:
/var/www/opf/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213: [BUG] Segmentation fault
denke ich, so viele Edelsteine sind da es dort fehlt, müssen einige Edelsteinabhängigkeiten nicht verifiziert sein, und vielleicht benutzt ein Edelstein eine inkompatible Rubinversion 1.9.1, obwohl es eine 1.9.3 erwartet.
Ich denke, das Problem besteht darin, Ruby-Versionen und Edelsteine zu verwalten. Ich mache sicherlich einen Mix mit Gemset und meinem Capistrano Einsatz.
Ich vermisse Erfahrung und Informationen. Könnte jemand mir raten, wie man das auf dem Server behandelt? Was sind die besten Praktiken?
Wie soll ich meine Ruby-Version aktualisieren? mit Capistrano deploy.rb? manuell? mit/ohne rvm? Ich sah eine neue Version von Ruby 1.9.3-P327 hat gerade veröffentlicht.
Sollte ich Gemset verwenden oder nicht? Was ist mit dem: rvm_ruby_string in meiner deploy.rb. Ist es richtig geschrieben oder soll ich den p194 Teil entfernen? Soll ich den: rvm_ruby_string entfernen? Behalte es ? Verwenden Sie eine .rvmrc Datei ???
Ich bin wirklich verloren und eine Art Hilfe wäre willkommen.
Das ist meine config/deploy.rb in jedem Fall:
require 'bundler/capistrano'
require File.join(File.dirname(__FILE__), 'deploy') + '/capistrano_database'
set :rvm_type, :system
set :rvm_ruby_string, '[email protected]'
require 'rvm/capistrano'
set :application, 'opf'
set :deploy_to, '/var/www/opf'
set :rails_env, 'production'
set :user, 'the_user'
set :use_sudo, false
set :group_writable, false
set :scm, :git
set :repository, '[email protected]:user/opf.git'
set :branch, 'master'
default_run_options[:pty] = true
set :deploy_via, :remote_cache
server '192.168.5.200', :web, :app, :db, :primary => true
# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
end
Vielen Dank für jede Hilfe
Danke für die Antwort. Irgendeine Idee, warum ich diesen Fehler dann bekam: /var/www/opf/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213: [BUG] Segmentierung Fehler. Und warum der Ordner heißt Ruby/1.9.1. Ist es Ruby 1.9.1, das anstelle von 1.9.3 verwendet wird? – Douglas
1.9.1 ist ein Kompatibilitätsgrad aller 1.9.x Rubine, wie für die 'BUG' - es ist eine neue Frage – mpapis
Es tut mir leid, aber ich verstehe Ihre erste Antwort nicht. Wie verwende ich meine Edelsteinsets? Ich möchte keine Edelsteine in meinem App-Ordner speichern. Das macht nicht Sinn, denn Edelstein ist da, um Edelsteine zu verwalten. – Douglas