1

Rails 3.2.2 hat in meiner Entwicklungsumgebung und auf meinem Server gut funktioniert.Warum wird nicht installieren Bundles 3.2.3 auf meinem Server?

I bis 3.2.3 zu aktualisieren ich versucht, durch Änderung:

gem 'rails', '3.2.2' 

zu

gem 'rails', '3.2.3' 

dann ausgeführt wird:

bundle update 
bundle 

Alles geht gut, bis ich versuche zu implementieren zu meinem Server. Während der deploy, erhalte ich diese Meldung:

An error occured while installing railties (3.2.3), and Bundler cannot continue. 
Make sure that `gem install railties -v '3.2.3'` succeeds before bundling. 

Ich habe in den Server eingeloggt und lief das Juwel railties -v ‚3.2.3‘ Befehl installieren und es funktioniert ohne Probleme. Aber die Bereitstellung schlägt immer auf die gleiche Weise fehl.

Ich habe versucht, das Cache-Verzeichnis wie gezeigt here zu löschen, aber ich bin mir nicht sicher, ob ich das richtig mache. Ich benutze rvm auf dem Server und meiner Entwicklungsumgebung.

Kann mir jemand helfen, mich in eine Richtung darauf zu zeigen?

Hier ist meine deploy.rb Datei:

require "bundler/capistrano" 

$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) # Add RVM's lib directory to the load path. 
require "rvm/capistrano"     # Load RVM's capistrano plugin. 

set :application, "teamsite" 
set :repository, "[email protected]:user/teamsite.git" 
set :deploy_to, "/home/website.com/rails/application/" 
set :user, "website.com" 
set :scm, :git 
set :use_sudo, false 
default_run_options[:pty] = true 
set :branch, "master" 
set :scm_verbose, true 
set :deploy_via, :remote_cache 
ssh_options[:forward_agent] = true 

task :staging do 
    role :web, "staging.website.com" 
    role :app, "staging.website.com" 
    role :db, "staging.website.com", :primary => true 
end 

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 

    namespace :assets do 
    task :precompile, :roles => :web, :except => { :no_release => true } do 
     from = source.next_revision(current_revision) 
     if capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ app/assets/ | wc -l").to_i > 0 
     run %Q{cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{asset_env} assets:precompile} 
     else 
     logger.info "Skipping asset pre-compilation because there were no asset changes" 
     end 
    end 
    end 
end 

namespace :customs do 
    task :create_symlink, :roles => :app do 
    run <<-CMD 
     ln -nfs #{shared_path}/files #{release_path}/files 
    CMD 

    run <<-CMD 
     ln -nfs #{shared_path}/drawings #{release_path}/drawings 
    CMD 

    run <<-CMD 
     ln -nfs #{shared_path}/photos #{release_path}/photos 
    CMD 
    end 
end 

after "deploy:create_symlink","customs:create_symlink" 
after "deploy", "deploy:cleanup" 

aktualisieren

konnte ich endlich dieses Problem beheben, indem auf einen anderen Benutzer bereitstellen. Aber die Frage bleibt: Wie würde ich den Edelstein-Cache für den alten Benutzer löschen?

+0

Bitte geben Sie Ihr Skript ein – mpapis

Antwort

3

könnten Sie

verwenden
gem pristine --all --no-extensions 

alle von Grund auf Ihre Edelsteine ​​neu zu installieren. Wenn Sie Passagier auf Ihrem Host verwenden, müssen Sie herausfinden, wo dieses Edelstein-Cache-Verzeichnis wirklich ist. Schauen Sie sich die Bashrc für GEM_PATH Wert, Mine auf Dreamhost ist:

export GEM_PATH="$GEM_HOME:/usr/lib/ruby/gems/1.8" 

Oder wenn Sie RVM auf Ihrem Server verwenden, der Pfad ist wahrscheinlich auf die aktuelle Version rvm verwendet.

Verwandte Themen