2016-05-27 12 views
0

Ich bin derzeit im Einsatz einer App mit Capistrano-rbenv. Der Server, auf dem ich versuche, bereits zu hosten, verfügt über mehrere Anwendungen, die eingerichtet und ausgeführt werden. Für den Ruby-Versionsmanager rbenv gibt es bereits mehrere Versionen von ruby ​​setup und global ist der Ruby "1.8.7" eingestellt. Die aktuelle Anwendung, die ich jetzt verwende, verwendet Ruby 2.1.5. Ich habe die erforderliche Ruby-Version installiert, und wenn ich versuche, w.r.t die Umgebung zu deployen, treten die Releases auf, aber wenn die precompile-Datei "assets:" auftritt, gibt es ein Problem. Während des Vorkompilierens wird der Bundler-Edelstein aus der globalen Edelstein-Set-Version genommen und nicht von 2.1.5 Rubin-Edelsteinen genommen. Im Folgenden habe ich den Fehler zusammen mit meinem aktuellen Setup erwähnt.Capistrano Deployment Mit rbenv

error: 
     /usr/lib64/ruby/gems/1.8/gems/bundler-1.8.5/lib/bundler/spec_set.rb:92:in `materialize': Could not find rake-10.4.2 in any of the sources (Bundler::GemNotFound) 

from /usr/lib64/ruby/gems/1.8/gems/bundler-1.8.5/lib/bundler/spec_set.rb:85:in `map!' 
    from /usr/lib64/ruby/gems/1.8/gems/bundler-1.8.5/lib/bundler/spec_set.rb:85:in `materialize' 
    from /usr/lib64/ruby/gems/1.8/gems/bundler-1.8.5/lib/bundler/definition.rb:132:in `specs' 
    from /usr/lib64/ruby/gems/1.8/gems/bundler-1.8.5/lib/bundler/definition.rb:177:in `specs_for' 
    from /usr/lib64/ruby/gems/1.8/gems/bundler-1.8.5/lib/bundler/definition.rb:166:in `requested_specs' 
    from /usr/lib64/ruby/gems/1.8/gems/bundler-1.8.5/lib/bundler/environment.rb:18:in `requested_specs' 
    from /usr/lib64/ruby/gems/1.8/gems/bundler-1.8.5/lib/bundler/runtime.rb:13:in `setup' 
    from /usr/lib64/ruby/gems/1.8/gems/bundler-1.8.5/lib/bundler.rb:122:in `setup' 
    from /usr/lib64/ruby/gems/1.8/gems/bundler-1.8.5/lib/bundler/setup.rb:18 

deploy.rb setup 

# Server 
# set :default_environment, { 
# path: '/home/deployer/.rbenv/shims:/home/deployer/.rbenv/bin', 
# rbenv_root: '/home/deployer/.rbenv' 
# } 

set :user, 'deployer' 
set :rbenv_type, :user 
#set :bundle_dir, "/home/deployer/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0" 
set :rbenv_ruby, '2.1.5' 
# set :rbenv_ruby_dir, '/home/deployer/.rbenv/versions/2.1.5' 
# set :bundle_cmd, "#{release_path}/bin/bundle" 
# set :rbenv_custom_path, '/home/deployer/.rbenv' 
set :rbenv_path, '/home/deployer/.rbenv' 
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec" 

Aber wenn ich versuche, Bündelung von den Releases-Ordner bei einer der ein Release, läuft es gut ohne Fehler. Was mache ich falsch ?

Ich kann die 2.1.5 nicht als global auf dem Server festlegen, da viele andere Anwendungen davon abhängen.

Jede Empfehlung wäre hilfreich.

Dank Im Voraus.

Antwort

0

Wie wäre es, erstellen Sie eine .ruby-version Datei in Ihrem App-Pfad?

cd /path/to/app/ 
echo 2.1.5 > .ruby-version 
ruby -v 
bundle install 

Überprüfen Sie die Änderungen und versuchen Sie, sie erneut bereitzustellen.

+0

versucht, das jetzt auch verwenden. Aber das Problem mit dem Capistrano-Rails-Juwel, das ich in meiner App benutzt hatte, ließ mich aus irgendeinem Grund nicht den Pfad wählen. Aber irgendwie danke für deinen Vorschlag. – rajesh023

Verwandte Themen