2012-11-13 13 views
5

私はCapistranoを持つサーバーに初めてのアプリケーションをデプロイしようとしていますが、を管理していると少しぼんやりしていますです。bundler/capistranoが正しいルビーバージョンの宝石をインストールしていません

これらは私の(サーバーおよびワークステーション)のあるバージョン:

  • のRails 3.2.8
  • RVM 1.16.17
  • 宝石1.8.24
  • バンドラー1.2.1
  • PG宝石0.14.1

私のジェムセットは、

です。

(/usr/local/rvm/gems/ruby-1.9.3-p194で見つかった)ルビー-1.9.3-P194のためのGemsets

  • (デフォルト)
  • グローバル
  • => rail3dev20120606

私はデフォルトのgemsetを設定します。:私は実行すると

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/gems /私は必要なすべての宝石(Gemfileで指定されている)を好きになります。私は、ルビーバージョンに問題があると確信していますが、どうすればこの問題を解決できますか?私は、任意のすくいコマンドを実行する場合、それはデシベルと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を期待しています。

私は問題がルビーのバージョンと宝石を管理することだと思います。私は確かにgemsetとcapistrano配備といくつかのミックスをやっています。

私は経験と情報がありません。 誰も私にサーバー上でこれを処理する方法を教えてもらえますか?ベストプラクティスは何ですか?

私はどのように私のルビーバージョンを更新すると思いますか?カピストラーノdeploy.rbと?手動で? RVMあり/なし? 1.9.3-p327の新バージョンがリリースされたばかりです。

gemsetを使用する必要がありますか?私のdeploy.rbの:rvm_ruby_stringはどうでしょうか?正しく綴られていますか、またはp194部分を除去すべきですか?私は:rvm_ruby_stringを削除する必要がありますか?それを保つ? .rvmrcファイルを使用しますか?

私は本当に失われて、何か親切な助けが歓迎されるでしょう。

これはいずれにせよ、私のconfig/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 

おかげで

答えて

4

宝石がインストールされているが、それらは、バンドラのコンテキストにインストールされています。

bundle exec gem list 

これは、.bundle/configに設定が保存されていて、共有されている宝石をインストールしていないため、すべての宝石がプロジェクトごとに別々のディレクトリにインストールされているためですそれをインプレース・ジェムセットとして扱います。

+1

感謝を。なぜこのエラーが出るのかわからない/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.3の代わりに使用されるルビ1.9.1ですか? – Douglas

+0

1.9.1は、すべての1.9.xルビーの互換性レベルです。これは新しい質問です。 – mpapis

+0

申し訳ありませんが、最初の答えは分かりません。私の宝石をどうやって使うのですか?私は宝石を私のappフォルダに保存したくない。 gemsetは宝石を管理するために存在しているので、これは意味をなさない。 – Douglas

関連する問題