Rails server bin/rails: 6: предупреждение: уже инициализированная постоянная ошибка APP_PATH

Я пробовал несколько вещей, таких как удаление/переустановка рельсов и драгоценных камней, но безрезультатно.

Когда я перехожу в свой новый проект и запускаю рельсы s или свяжу сервер exec rails, я получаю эту ошибку:

bin/rails:6: warning: already initialized constant APP_PATH
/Users/toabui/Sites/cms/bin/rails:6: warning: previous definition of APP_PATH was here Usage: rails COMMAND [ARGS]

Внутри моего bin/rails я вижу этот код:

#!/usr/bin/env ruby
begin
load File.expand_path("../spring", __FILE__)
rescue LoadError
end
APP_PATH = File.expand_path('../../config/application',  __FILE__)
require_relative '../config/boot'
require 'rails/commands'

Кто-нибудь знает, почему я продолжаю получать эту ошибку, когда я запускаю рельсы?

Я искал googled и кажется, что есть ошибка с жемчугом spring, но я не могу заставить его работать.

Ответ 1

Я не смог найти an_initilizer.rb в моем каталоге, и я попытался удалить/установить gem spring, но это не сработало.

Однако мне удалось наконец заставить его работать.

По-видимому, существует некоторый конфликт с spring и рельсами 4 +.

Мне нужно было запустить:

rake rails:update:bin 

Но я столкнулся с другой ошибкой:

Library not loaded: libmysqlclient.18.dylib

Я выполнил следующую команду, которую я нашел в другой статье stackoverflow:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib 

Затем выполнялась исходная команда:

 rake rails:update:bin 

Затем запустите команду сервера:

 rails s

И теперь работает мой сервер WebBrick.

Ответ 2

rake rails:update:bin для спасения.

Ответ 3

Если вы находитесь в El Capitan (OS X 10.11), Security Integrity Protection (SIP) предотвратит связывание в /usr/lib для исправления mysql. Свяжите его в /usr/local/lib вместо:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib

Ответ 4

Это работа для меня.

gem uninstall mysql2

bundle install или gem install mysql2

Ответ 5

Я получал ту же ошибку. Удалено spring из Gemfile и переустановлено. На самом деле это не решение.

Я нашел код, создавший эту ошибку в config/initializers/an_initializer.rb

require "lib/a_file_i_need"

Я изменил его на

require "#{ Rails.root }/lib/a_file_i_need"

Ответ 6

Я получил эту ошибку, пытаясь обновить рельсы 4 и imagemagick и rmagick. Поэтому я просто запустил

gem удалить rmagick

Выберите опцию "Все версии". Затем повторите попытку

EDIT: Это произошло снова со мной только сейчас, потому что я попытался использовать драгоценный камень, не установив необходимый базовый камень. В моем случае решение было установить "omniauth-google", прежде чем пытаться использовать "omniauth-google-oauth2", но поскольку я не установил, я снова получил ту же ошибку

Ответ 7

Я получил эту ошибку после обновления postgresql.

$ gem uninstall pg
$ gem install pg

разрешил эту проблему для меня.

Ответ 8

Это случилось со мной после выполнения brew upgrade. Я предполагаю, что это сломало некоторые драгоценные камни с родными расширениями, хотя не было сообщения об ошибке, указывающего на это.

То, что я закончил, было полностью удалением моих установленных драгоценных камней (в моем случае я полностью удалил и переустановил рубиновую версию с помощью rbenv).
Запуск bundle install перекомпилировал собственные расширения, и все снова запущено.

Ответ 9

Я получил ту же ошибку. У меня был рубин 2.1.3 и рельсы 4.1.6, работающий на Mavericks, а затем я переехал в Йосемити и установил версию 4.2.0 rails ruby ​​2.1.5, а мои приложения, которые я сделал в предыдущей версии, не работали с новой версией, поэтому я сделал несколько наборов драгоценных камней с RVM и установил версию 2.1.3. Теперь, когда я хотел запустить сервер, я получил следующую ошибку:

bin/rails:6: warning: already initialized constant APP_PATH
/Users/Lexynux/_WebProjects/RoR_Apps/SAIIP2/bin/rails:6: warning: previous definition of APP_PATH was here
Usage: rails COMMAND [ARGS]

И как сказал tobu, я побежал:

rake rails:update:bin

Я получил это:

LoadError: dlopen(/Users/Lexynux/.rvm/gems/[email protected]/extensions/x86_64-darwin-14/2.1.0-static/mysql2-0.3.16/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib

Затем я запустил это:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

И, наконец, я повторил первую команду, которую терминал запросил у меня для этого:

Overwrite /Users/Lexynux/_WebProjects/RoR_Apps/SAIIP2/bin/rails? (enter "h" for help) [Ynaqdh]

Я просто набрал "Y" и нажимаю return.

После всего этого я начал работать и развиваться хорошо.

Спасибо.

Ответ 10

Я получил ту же ошибку, что и связано с gem dotenv. Инструкции должны были добавить следующее в Gemfile:

gem 'dotenv', :require => 'dotenv/rails-now'

Но, как оказалось, dotenv/rails-now вызвало ошибку. Если вы используете dotenv, не требуйте rails-now

Ответ 11

Используете ли вы pg и mysql в разных ветвях? Если да, пожалуйста, подтвердите конфигурационный файл db.

Ответ 12

Я напишу, что сработало для меня.

Комментарий

gem 'spring'

Добавить gem 'net-shh'

и запустите bundle install

И перезагрузите сервер

Ответ 13

Я получил эту ошибку после обновления рельсов. Отключение spring дает мне подсказку, что проблема связана с:

gem 'google-api-client', require: 'google/api_client'

Изменено на:

gem 'google-api-client', '0.9'

Устранена проблема.

Ответ 14

У меня было такое же сообщение об ошибке при попытке запустить приложение в среде Vagrant. Он появился из ниоткуда после нулевых изменений кода приложения (и последует другое странное поведение, например, при удалении приложения при попытке запустить приложение).

В конце концов я просто остановил виртуальную машину и перезапустил ее, все было хорошо, поэтому я предполагаю, что это была проблема с синхронизацией файлов/разделяемыми папками? (используется совместно используемая папка Vagrant).

Ответ 15

Запустите их в консоли:

rake tmp:clear
rake secret

Ответ 16

IF rake rails:update:bin дает дополнительные ошибки:

Недавно я занимался обслуживанием серверов и впоследствии обновлял OpenSSL.

Когда я попытался запустить команду rake rails:update:bin, мне была представлена ​​ошибка, относящаяся к openSSL.

Пересоздав мою версию Ruby (`rvm reinstall ruby-x.x.x 'с RVM), обе ошибки ушли.

Это всегда стоит попробовать, я думаю.

Ответ 17

Моя проблема в том, что я использовал устаревшую версию ruby ​​1.9.3 с рельсами 4.2. Я обновил до 2.1.2, удалил сломанный проект, запустил новый блог rails, чтобы воссоздать мой проект, перешел в мое недавно созданное приложение и запустил сервер rails, и он сработал.

Ответ 18

У меня была эта проблема, и я обнаружил, что это вызвано тем фактом, что я удалил драгоценный камень из gemfile без удаления других ссылок require. В моем случае мне просто пришлось удалить его из config/application.rb.

Ответ 19

В последнее время эта ошибка вызвана spring из-за предлагаемого кода в исполняемых файлах:

begin
  load File.expand_path('../spring', __FILE__)
rescue LoadError
end

Первоначально он рассчитывает на LoadError для spring сам по себе, но по этому коду игнорируется и вся другая ошибка загрузки.

Таким образом, если у вас есть какой-либо другой LoadError в процессе загрузки rails (например, в маршрутах /init ) spring запуск рабочего процесса завершается с ошибкой, а затем идет ветка, которая пытается загрузить все снова, как не было spring.

Ответ 20

Для меня этот вопрос представлен в результате обновления пакета rvm-capistrano среди прочего.
Для этого требуется: ложные фиксированные вещи в конце в соответствии с предыдущим сообщением

gem  'rvm-capistrano',  require: false

Возможно, это может быть дополнительная проблема - поскольку запуск rake rails:update:bin может помочь устранить первоначальную проблему.