2016-06-06 3 views
2

Ich verwende Capistrano, um meine App zu implementieren. Ruby wird von RVM auf meinem Mac installiert, auf dem Server ist die gleiche Ruby-Version (2.2.5) installiert von rbenv.LoadError: kann solche Datei nicht laden - active_support

Nachdem ich die Produktion deploy deckeln wollen, wird die folgende Fehlermeldung angezeigt:

SSHKit::Command::Failed: rake exit status: 1 
rake stdout: Nothing written 
rake stderr: rake aborted! 
LoadError: cannot load such file -- active_support 
/home/user/app/shared/bundle/ruby/2.2.0/gems/railties-4.1.14/lib/rails.rb:5:in `require' 
/home/user/app/shared/bundle/ruby/2.2.0/gems/railties-4.1.14/lib/rails.rb:5:in `<top (required)>' 
/home/user/app/shared/bundle/ruby/2.2.0/gems/railties-4.1.14/lib/rails/all.rb:1:in `require' 
/home/user/app/shared/bundle/ruby/2.2.0/gems/railties-4.1.14/lib/rails/all.rb:1:in `<top (required)>' 
/home/user/app/releases/20160606092956/config/application.rb:3:in `require' 
/home/user/app/releases/20160606092956/config/application.rb:3:in `<top (required)>' 
/home/user/app/releases/20160606092956/Rakefile:4:in `require' 
/home/user/app/releases/20160606092956/Rakefile:4:in `<top (required)>' 
/home/user/.rbenv/versions/2.2.5/bin/bundle:23:in `load' 
/home/user/.rbenv/versions/2.2.5/bin/bundle:23:in `<main>' 
(See full trace by running task with --trace) 

DEBUG [0ac2a446] Bundled gems are installed into /home/user/app/shared/bundle. 
    INFO [0ac2a446] Finished in 0.509 seconds with exit status 0 (successful). 
DEBUG [d7061392] Running if test ! -d /home/user/app/releases/20160606043027; then echo "Directory does not exist '/home/user/app/releases/2016060604… 
DEBUG [d7061392] Command: if test ! -d /home/user/app/releases/20160606043027; then echo "Directory does not exist '/home/user/app/releases/201606060… 
DEBUG [d7061392] Finished in 0.036 seconds with exit status 0 (successful). 
    INFO [b8dc48fb] Running bundle exec rake assets:precompile as [email protected] 
DEBUG [b8dc48fb] Command: cd /home/user/app/releases/20160606043027 && (export RAILS_ENV="production" ; bundle exec rake assets:precompile) 
DEBUG [b8dc48fb] rake aborted! 
DEBUG [b8dc48fb] LoadError: cannot load such file -- active_support 
DEBUG [b8dc48fb] /home/user/app/shared/bundle/ruby/2.2.0/gems/railties-4.1.14/lib/rails.rb:5:in `require' 
/home/user/app/shared/bundle/ruby/2.2.0/gems/railties-4.1.14/lib/rails.rb:5:in `<top (required)>' 
/home/user/app/shared/bundle/ruby/2.2.0/gems/railties-4.1.14/lib/rails/all.rb:1:in `require' 
/home/user/app/shared/bundle/ruby/2.2.0/gems/railties-4.1.14/lib/rails/all.rb:1:in `<top (required)>' 
/home/user/app/releases/20160606043027/config/application.rb:3:in `require' 
/home/user/app/releases/20160606043027/config/application.rb:3:in `<top (required)>' 
/home/user/app/releases/20160606043027/Rakefile:4:in `require' 
/home/user/app/releases/20160606043027/Rakefile:4:in `<top (required)>' 
/home/user/.rbenv/versions/2.2.5/bin/bundle:23:in `load' 
/home/user/.rbenv/versions/2.2.5/bin/bundle:23:in `<main>' 
DEBUG [b8dc48fb] (See full trace by running task with --trace) 

Dies ist deploy.rb:

lock '3.5.0' 

set :application, "app_#{fetch(:stage)}" 

set :repo_url, '[email protected]:...' 

set :user, 'user' 

server "ip_adress", user: fetch(:user), roles: %w(app db web) 

set :deploy_to, "/home/#{fetch(:user)}/#{fetch(:application)}" 

# Default value for :pty is false 
# set :pty, true 

set :linked_files, fetch(:linked_files, []).push("config/database.yml") 
set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system') 

set :bundle_flags, '--deployment' 
set :bundle_jobs, 4 

set :keep_assets, 2 

set :use_sudo, true 

set :rbenv_type, :user 
set :rbenv_ruby, "2.2.5" 

set :rails_env, fetch(:stage) 

set :passenger_restart_with_touch, true 

namespace :deploy do 
    after :restart, :clear_cache do 
    on roles(:web), in: :groups, limit: 3, wait: 10 do 
     # Here we can do anything such as: 
     # within release_path do 
     # execute :rake, 'cache:clear' 
     # end 
    end 
    end 

end 

Mein Gemfile:

source 'https://rubygems.org' 


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.1.14' 
# Use sqlite3 as the database for Active Record 
gem 'sqlite3' 
gem 'mysql2', '~> 0.3.18' 
# Use SCSS for stylesheets 
# gem 'sass-rails', '~> 4.0.3' 
gem 'sass' 
gem 'sass-rails', '~> 5.0' 
# Use Uglifier as compressor for JavaScript assets 
gem 'uglifier', '>= 1.3.0' 
# Use CoffeeScript for .js.coffee assets and views 
gem 'coffee-rails', '~> 4.0.0' 
# See https://github.com/rails/execjs#readme for more supported runtimes 
# gem 'therubyracer', platforms: :ruby 

gem 'jquery-rails' 

gem 'turbolinks' 
gem "therubyracer" 
gem "less-rails" 

# UI 
gem 'nprogress-rails' 
gem "twitter-bootstrap-rails" 
gem "simple-navigation" 
gem 'autosize-rails' 
gem "emoticons_helper" 

### Autentication 
gem "devise" 
gem 'cancancan', '~> 1.10' 

gem 'omniauth' 
gem 'omniauth-twitter' 
gem 'omniauth-facebook' 
gem "omniauth-linkedin" 

# utils 
gem "quiet_assets" 
gem 'social-share-button' 

gem 'dragonfly', '~> 1.0.12' 

gem 'jbuilder', '~> 2.0' 
# bundle exec rake doc:rails generates the API under doc/api. 
gem 'sdoc', '~> 0.4.0', group: :doc 

# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring 

# gem "thin" 

gem 'jquery-ui-rails' 
gem 'jquery-modal-rails' 

gem "capistrano", "~> 3.5.0" 

group :development, :test do 
    # Call 'byebug' anywhere in the code to stop execution and get a debugger console 
    gem 'capistrano-rbenv', require: false 
    gem 'capistrano-bundler', require: false 
    gem 'capistrano-rails', require: false 
    gem 'capistrano-passenger', require: false 
    gem 'byebug' 
end 

gem "activesupport", "~> 4.1.14" 


# Use ActiveModel has_secure_password 
# gem 'bcrypt', '~> 3.1.7' 

# Use unicorn as the app server 
# gem 'unicorn' 

# Use Capistrano for deployment 
# gem 'capistrano-rails', group: :development 

# Use debugger 
# gem 'debugger', group: [:development, :test] 

Der Server ist Amazon EC2 mit Ubuntu, Ruby 2.2.5 (installiert von rbenv).

Ist das der Fehler mit Gem Active_Support, oder mache ich etwas falsch?

+1

Ihre Gemfile.lock Datei löschen und versuchen Bundle Update auszuführen und dann wieder bündeln zu installieren. Ich hoffe es funktioniert für dich. –

+0

@DineshSaini Ich habe diese Lösung vor und jetzt wieder ausprobiert. Aber immer noch der gleiche Fehler :-( – Boomerange

+0

@DineshSaini Nur um zu verdeutlichen, ist es gut, Edelsteine ​​zu installieren und ihre Version zu verwenden. Denn wenn Sie Gemfile.lock löschen, können Sie Ihre Edelsteine ​​beschädigen. So verwenden Sie zum Beispiel Edelstein "devise", " ~> 3.5.6 ', nicht nur gem "devise". – Boomerange

Antwort

3

Ich glaube nicht, dass Sie etwas falsch machen. Ich vermute, dass Sie einen Fehler in Bundler festgestellt haben oder dass ein Dateiberechtigungs-Problem vorliegt, das verhindert, dass das ActiveSupport-Juwel geladen wird.

Schauen Sie sich diese Dinge:

  1. Stellen Sie sicher, dass Active in der Tat in /home/ubuntu/jozu_production/shared/bundle/ruby/2.2.0/gems installiert ist. Sie sollten ein Verzeichnis mit dem Namen activesupport-4.1.14 sehen, das Ihrem Benutzer ubuntu gehört. Stellen Sie sicher, dass das Verzeichnis und sein Inhalt alle im Besitz von ubuntu sind und lesbar sind.

  2. Stellen Sie sicher, dass Sie die neueste Bundler Version in Ihrer Ruby 2.2.5 Umgebung installiert haben. Ab diesem Schreiben ist das Bundler 1.12.5. (Führen Sie gem install bundler aus.)

  3. Versuchen Sie manuell, den Befehl precompile auf dem Server auszuführen, um festzustellen, ob sich das Verhalten unterscheidet. Fügen Sie dem Befehl --trace hinzu, um zusätzliche Fehlerbehebungsdaten zu erhalten.

    cd /home/ubuntu/jozu_production/releases/20160606043027 && (export RAILS_ENV="production" ; bundle exec rake assets:precompile --trace)