我想部署我的第一個應用程序在服務器上與Capistrano,我有點失去了管理gemsets和紅寶石版本。bundler/capistrano沒有安裝正確的ruby版本的寶石
這些是我的(服務器和工作站)版本:
- 的Rails 3.2.8
- RVM 17年1月16日
- 寶石1.8.24
- 捆紮機1.2.1
- 皮克寶石0.14.1
我的寶石是:
個Gemsets爲紅寶石1.9.3-P194(在/usr/local/rvm/gems/ruby-1.9.3-p194找到)
- (默認)
- 全球
- => rail3dev20120606
我設置默認寶石有:
rvm use [email protected] --default --passenger
當我運行一個:
cap bundle:install
與成功的任務結束,但是當我做:
gem list
有許多丟失的寶石但他們存在於我的Gemfile。 當我去檢查我的寶石/var/www/opf/shared/bundle/ruby/我找到一個文件夾,名爲1.9.1和/var/www/opf/shared/bundle/ruby/1.9 .1 /寶石/我可以喜歡我所有需要的寶石(在Gemfile中指定)。我確定ruby版本存在問題,但我該如何解決這個問題?
此刻,如果我做任何rake命令,我得到了一個紅寶石崩潰[問題]段錯誤,因爲它試圖訪問數據庫,並使用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
我想盡可能多的寶石缺少必須有一些寶石依賴沒有得到驗證,也許寶石使用不兼容的紅寶石版本1.9.1,但它期望1.9.3。
我認爲這個問題是圍繞管理ruby版本和寶石。我當然在做一些混搭gemset和我的capistrano部署。
我很想好經驗和信息。 有人可以告訴我如何處理這個在服務器上?什麼是最佳實踐?
我如何更新我的ruby版本?與Capistrano deploy.rb?手動?有沒有rvm?我看到剛剛發佈的新版本的Ruby 1.9.3-p327。
我應該使用寶石或沒有?那麼我的deploy.rb中的rvm_ruby_string如何呢?拼寫是否正確,或者我應該刪除p194部分?我應該刪除:rvm_ruby_string?收下 ?使用.rvmrc文件?
我真的失去了與某種幫助將受到歡迎。
這是在任何情況下我的配置/ deploy.rb:
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
感謝
感謝您的回答。任何想法爲什麼我得到這個錯誤,然後:/var/www/opf/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:[BUG]分割故障。以及爲什麼該文件夾被稱爲ruby/1.9.1。是使用1.9.1代替1.9.3的紅寶石嗎? – Douglas
1.9.1是所有1.9.x紅寶石的兼容級別,對於「BUG」 - 這是一個新問題 – mpapis
對不起,但我不明白你的第一個答案。我如何使用我的寶石?我不希望寶石保存在我的應用程序文件夾中。由於gemset在那裏管理寶石,所以這並沒有做出反應。 – Douglas