2012-11-13 6 views
5

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

risposta

4

sono installate le gemme, ma sono installati con un contesto di bundler:

bundle exec gem list 

ciò è dovuto al fatto che bundler ha memorizzato le sue impostazioni in .bundle/config e non ha installato gemme condivise, ma tutte le gemme sono installate in dir separate per progetto l'etto, trattalo come un gemst inplace.

+1

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

+0

1.9.1 è un livello di compatibilità di tutti i rubini 1.9.x, come per il 'BUG' - è una nuova domanda – mpapis

+0

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