2015-10-05 2 views
0

Я пытаюсь настроить Rails 4.2 на Nginx на некоторое время. Каждый раз, когда я начинаю новую установку с RVM, все становится хорошо. Я могу запустить rake db:create:all и создать базы данных. Но если я перезагрузить Nginx с помощью /etc/init.d/nginx restart, Passenger посылает мне ошибку о гем:Ошибка Rails «не может найти pg-0.18.3 в любом из источников» после перезапуска Nginx

It looks like Bundler could not find a gem. Maybe you didn't install all the gems that this application needs. To install your gems, please run: 

bundle install 

If that didn't work, then the problem is probably caused by your application being run under a different environment than it's supposed to. Please check the following: 

    Is this app supposed to be run as the www-data user? 
    Is this app being run on the correct Ruby interpreter? Below you will see which Ruby interpreter Phusion Passenger attempted to use. 

-------- The exception is as follows: ------- 
Could not find pg-0.18.3 in any of the sources (Bundler::GemNotFound) 

    /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/spec_set.rb:92:in `block in materialize' 
    /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/spec_set.rb:85:in `map!' 
    /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/spec_set.rb:85:in `materialize' 
    /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/definition.rb:140:in `specs' 
    /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/definition.rb:185:in `specs_for' 
    /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/definition.rb:174:in `requested_specs' 
    /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/environment.rb:18:in `requested_specs' 
    /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/runtime.rb:13:in `setup' 
    /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler.rb:127:in `setup' 
    /var/lib/gems/2.1.0/gems/bundler-1.10.6/lib/bundler/setup.rb:18:in `<top (required)>' 
    /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:411:in `activate_gem' 
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:295:in `block in run_load_path_setup_code' 
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:416:in `running_bundler' 
    /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:294:in `run_load_path_setup_code' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:99:in `preload_app' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:153:in `<module:App>' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<module:PhusionPassenger>' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:28:in `<main>' 

программатор камень уже установлен в моем Gemfile и РВМ:

source 'https://rubygems.org' 


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.2.4' 

gem 'pg', '~> 0.18.3' 

gem 'sass-rails', '~> 5.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.1.0' 
gem 'therubyracer', platforms: :ruby 

gem 'jquery-rails' 
gem 'turbolinks' 
gem 'jbuilder', '~> 2.0' 
gem 'sdoc', '~> 0.4.0', group: :doc 

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

gem 'execjs' 

group :development, :test do 
    # Call 'byebug' anywhere in the code to stop execution and get a debugger console 
    gem 'byebug' 
end 

group :development do 
    # Access an IRB console on exception pages or by using <%= console %> in views 
    gem 'web-console', '~> 2.0' 

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

Тогда, если я бегу gem query --local я pg (0.18.3)

конфигурации/database.yml:

login: &login 
    adapter: postgresql 
    username: myuser 
    password: mypass 
    host: localhost 
    encoding: UTF8 

development: 
    <<: *login 
    database: mydb_dev 

test: 
    <<: *login 
    database: mydb_test 

production: 
    <<: *login 
    database: mydb_prod 

Информация РВМ:

ruby: 
    interpreter: "ruby" 
    version:  "2.2.1p85" 
    date:   "2015-02-26" 
    platform:  "x86_64-linux" 
    patchlevel: "2015-02-26 revision 49769" 
    full_version: "ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]" 

    homes: 
    gem:   "/usr/local/rvm/gems/ruby-2.2.1" 
    ruby:   "/usr/local/rvm/rubies/ruby-2.2.1" 

    binaries: 
    ruby:   "/usr/local/rvm/rubies/ruby-2.2.1/bin/ruby" 
    irb:   "/usr/local/rvm/rubies/ruby-2.2.1/bin/irb" 
    gem:   "/usr/local/rvm/rubies/ruby-2.2.1/bin/gem" 
    rake:   "/usr/local/rvm/rubies/ruby-2.2.1/bin/rake" 

    environment: 
    PATH:   "/usr/local/rvm/gems/ruby-2.2.1/bin:/usr/local/rvm/gems/[email protected]/bin:/usr/local/rvm/rubies/ruby-2.2.1/bin:/usr/local/rvm/bin:/root/.composer/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 
    GEM_HOME:  "/usr/local/rvm/gems/ruby-2.2.1" 
    GEM_PATH:  "/usr/local/rvm/gems/ruby-2.2.1:/usr/local/rvm/gems/[email protected]" 
    MY_RUBY_HOME: "/usr/local/rvm/rubies/ruby-2.2.1" 
    IRBRC:  "/usr/local/rvm/rubies/ruby-2.2.1/.irbrc" 
    RUBYOPT:  "" 

я делаю что-то неправильно, когда я пытаюсь перезагрузить Nginx?

+0

, пожалуйста, напишите полный gemfile и database.yml – nik

ответ

0

У вас, похоже, установлен жемчуг, но ваш спутник не находит его при перезапуске.

Несколько идей:

  • вы выполнили сверток в каталоге Gemfile? Попробуйте запустить bundle exec gem list, чтобы узнать, что на самом деле находится в вашем пакете, а не только то, что установлено локально (это то, что вы видите с gem query --local).
  • убедитесь, что у вас установлена ​​версия ruby, установленная rvm по умолчанию, которая соответствует тому, что связано с ней. Возможно, при перезапуске он по умолчанию ошибочно использует версию Ruby (а затем ищет неправильный путь)
+0

У вас может быть право. Запуск rvm gemdir: /usr/local/rvm/gems/ruby-2.2.1, затем запуск которого gem: /usr/local/rvm/rubies/ruby-2.2.1/bin/gem и который ruby:/usr/local/RVM/рубины/рубиново-2.2.1/bin/рубин. rvm gemdir не соответствует правильной папке gem, не так ли? –