Sto provando a distribuire la mia prima app su un server con Capistrano, e sono un po 'perso con la gestione di gemsets e la versione rubino.bundler/capistrano non installa gemme con la versione rubino corretta
Questi sono i miei (server e workstation) versioni:
- Rails 3.2.8
- RVM 1.16.17
- Gem 1.8.24
- Bundler 1.2.1
- pg gioiello 0.14.1
I miei set di gemme sono:
Gemsets per Ruby-1.9.3-P194 (si trovano in /usr/local/rvm/gems/ruby-1.9.3-p194)
- (default)
- globale
- => rail3dev20120606
ho impostato il GemSET default con:
rvm use [email protected] --default --passenger
Quando eseguo un:
cap bundle:install
La fine attività con successo, ma quando faccio una:
gem list
Ci sono molti gemme mancanti anche se sono presenti nel mio Gemfile. Quando vado a controllare le mie gemme in /var/www/opf/shared/bundle/ruby / trovo una cartella chiamata 1.9.1 e in /var/www/opf/shared/bundle/ruby/1.9 .1/gems/Posso appassionare tutte le mie gemme necessarie (specificate in Gemfile). Sono sicuro che c'è un problema con la versione ruby, ma come faccio a risolverlo?
Al momento, se faccio un qualsiasi comando rastrello, ho avuto un incidente rubino [Bug] Segmentation fault, come si tenta di accedere al db e utilizzando postgresql_adapter:
/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
penso come molte gemme sono manca ci deve avere alcune dipendenze gemma non verificate, e forse un gioiello sta usando un rubino incompatibile versione 1.9.1 anche se si aspetta un 1.9.3.
Penso che il problema riguardi la gestione di versioni e gemme di rubini. Sto certamente facendo un po 'di mix con gemset e il mio schieramento di capistrano.
Mi mancano esperienza e informazioni. Qualcuno potrebbe consigliarmi come gestirlo sul server? Quali sono le migliori pratiche?
Come suppongo di aggiornare la mia versione di rubino? con Capistrano deploy.rb? manualmente? con/senza rvm? Ho visto una nuova versione di Ruby 1.9.3-p327 appena rilasciata.
Devo usare gemset o no? Che dire di: rvm_ruby_string nel mio deploy.rb. È scritto correttamente o devo rimuovere la parte p194? Dovrei rimuovere il: rvm_ruby_string? Tienilo ? Usa un file .rvmrc ???
Sono davvero perso e un aiuto gentile sarebbe il benvenuto.
Questo è il mio config/deploy.rb in ogni caso:
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
Grazie per qualsiasi aiuto
Grazie per la risposta. Qualche idea sul perché ho ricevuto questo errore: /var/www/opf/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213: [BUG] Segmentazione colpa. E perché la cartella si chiama ruby / 1.9.1. È rubino 1.9.1 che viene utilizzato al posto di 1.9.3? – Douglas
1.9.1 è un livello di compatibilità di tutti i rubini 1.9.x, come per il 'BUG' - è una nuova domanda – mpapis
Mi dispiace, ma non capisco la tua prima risposta. Come utilizzo i miei set di pietre preziose? Non voglio che le gem siano salvate nella mia cartella dell'app. Questo non ha senso dato che gemset è lì per gestire le gemme. – Douglas