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
может помочь устранить первоначальную проблему.