I'm trying to deploy my first app on a server with Capistrano, and I'm a bit
lost with managing gemsets and ruby version.
These are my (server and workstation) versions :
Rails 3.2.8
RVM 1.16.17
Gem 1.8.24
Bundler 1.2.1
pg gem 0.14.1
My gemset are :
Gemsets for ruby-1.9.3-p194 (found
in /usr/local/rvm/gems/ruby-1.9.3-p194)
(default)
global
= rail3dev20120606
I set
the default gemset with :
rvm use 1.9.3-p194@rail3dev20120606 --default --passenger
When I run a :
cap bundle:install
The task end with success, but when I do a :
gem list
There are many missing gems though they are present
in my Gemfile.
When I go to check my gems
in /var/www/opf/shared/bundle/ruby/ I find a folder called 1.9.1 and
in /var/www/opf/shared/bundle/ruby/1.9.1/gems/ I can fond all of my needed gems (specified
in Gemfile). I'm sure there is a problem with ruby version, but how do I solve this ?
At
the moment, if I do any rake command, I got a ruby crash [Bug] Segmentation fault, as it try to access
the db and using postgresql_adapter.
I think as many gems are missing there must have some gem dependencies not verified, and maybe a gem is using an incompatible ruby version 1.9.1 though it expect a 1.9.3.
I think
the issue is around managing ruby versions and gems. I'm certainly doing some mix with gemset and my capistrano deployement.
I'm missing experience and info.
Could anybody advise me how to handle this on
the server ? What are
the best practices ?
How am I suppose to update my ruby version ? with Capistrano deploy.rb ? manually ? with/without rvm ? I saw a new version of ruby 1.9.3-p327 has just released.
Should I use gemset or not ? What about
the :rvm_ruby_string
in my deploy.rb. Is it correctly spelled or should I remove
the p194 part ? Should I Remove
the :rvm_ruby_string ? Keep it ? Use a .rvmrc file ???
I'm really
lost and some kind help would be welcome.
This is my config/deploy.rb
in any case :
require 'bundler/capistrano'
require File.join(File.dirname(__FILE__), 'deploy') + '/capistrano_database'
set :rvm_type, :system
set :rvm_ruby_string, 'ruby-1.9.3-p194@rail3dev20120606'
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
Thanks for any help