rails server bin / rails:6:警告:已经初始化常量APP_PATH错误

我已经尝试了一些东西,如卸载/重新安装铁轨和gem,但无济于事。

当我进入我的新项目,并运行rails或捆绑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' 

有谁知道当我运行rails s时为什么不断收到这个错误?

我GOOGLE了,似乎有一个spring的gem错误,但我似乎无法得到它的工作。

我找不到在我的目录中的an_initilizer.rb,我试图卸载/安装弹簧gem,但它没有工作。

但是,我确实设法最终得到它的工作。

显然与春季和铁轨4+有一些冲突。

我需要运行:

 rake rails:update:bin 

但是我碰到另一个错误:

 Library not loaded: libmysqlclient.18.dylib 

我运行了在另一个stackoverflow文章中find的以下命令:

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

然后运行原来的命令:

  rake rails:update:bin 

然后运行服务器命令:

  rails s 

现在我的WebBrick服务器正在运行。

rake rails:update:bin救援。

如果您使用的是El Capitan(OS X 10.11),则安全完整性保护(SIP)将阻止链接到/ usr / lib来修复mysql。 将它链接到/ usr / local / lib,而不是:

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

这是为我工作。

gem uninstall mysql2

bundle installgem install mysql2

我得到了同样的错误。 从Gemfile删除弹簧并重新捆绑。 不是一个真正的解决scheme。

我发现在config/initializers/an_initializer.rb中创build了这个错误的代码

 require "lib/a_file_i_need" 

我改变了

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

我得到这个错误,试图更新rails 4和imagemagick和rmagick。 所以我就跑了

gem卸载rmagick

select所有版本选项。 然后再试一次

编辑︰这再次与我刚刚开始,因为我试图使用没有安装所需的基础gem的gem。 在我的情况下,解决scheme是在尝试使用'omniauth-google-oauth2'之前安装'omniauth-google',但因为我没有安装,我又得到了同样的错误

升级postgresql后,我收到这个错误。

 $ gem uninstall pg $ gem install pg 

为我解决这个问题。

brew upgrade后,这发生在我身上。 我的猜测是,这打破了本地扩展一些gem,即使没有指出的错误信息。

我最终做的是完全删除我安装的gem(在我的情况下,我完全卸载并重新安装ruby版本使用rbenv )。
运行bundle install重新编译了本机扩展,并且一切都再次运行。

我得到了同样的错误。 我有Ruby 2.1.3和Rails 4.1.6运行在小牛,然后我迁移到优胜美地和4.2.0安装轨版本的ruby2.1.5和我的应用程序,我在以前的版本与新的,所以我用RVM制作了一些Gem套件,并安装了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/ruby-2.1.3@SAIIP2/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 

终于我重复了第一个命令它terminal问我这个:

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

我只是input'Y',然后回来。

毕竟,我开始工作,进展顺利。

谢谢。

我得到了同样的错误,它似乎与gem dotenv 。 说明将以下内容添加到Gemfile中:

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

但事实certificate, dotenv/rails-now导致了错误。 如果你使用dotenv现在不需要rails-now

你在不同的分支使用pg和mysql吗? 如果是,请确认dbconfiguration文件。

我会发布什么为我工作。

注释掉

 gem 'spring' 

添加gem 'net-shh'

并运行bundle install

并重新启动您的服务器

升级rails后我收到这个错误。 禁用spring给我一个暗示,问题是:

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

变成:

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

解决了这个问题。

当在一个Vagrant环境中尝试启动一个应用程序时,我有相同的错误信息输出。 在对应用程序代码进行零更改(以及其他奇怪的行为,比如在尝试运行应用程序时删除了development.rb)之后,它突然冒出来了。

最后,我简单地停止了虚拟机并重新启动了,一切都很好,所以我认为这是文件同步/共享文件夹的问题? (正在使用默认的Vagrant共享文件夹)。

在控制台中运行这些:

 rake tmp:clear rake secret 

IF rake rails:update:bin会产生额外的错误:

我最近一直在做一些服务器维护,并随后更新了OpenSSL。

当我尝试运行rake rails:update:bin命令时,出现了与openSSL有关的错误。

重build了我的Ruby版本(用RVM重新安装ruby-xxx),这两个错误都消失了。

我猜这总是值得一试。

我的问题是我使用rails 4.2的过时版本的ruby1.9.3。 我升级到2.1.2,删除了损坏的项目,运行rails新博客重新创build我的项目,导航到我新创build的应用程序,并运行rails服务器,它的工作。

我只是有这个问题,并发现这是由于我从gemfile中删除了一个gem而不删除其他require引用的事实。 在我的情况下,我只需要从config / application.rb中删除它。

最近有这个错误,它是由于它在可执行文件中的build议代码而引起的:

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

它最初预计在生产中的弹簧本身LoadError ,但通过这个代码,所有其他的负载错误也将被忽略。

因此,如果在rails加载过程中(例如在routes / init中)有任何其他LoadError ,则spring worker启动失败,然后出现分支,尝试再次加载所有内容,就像没有弹簧一样。

对我来说,这个问题是由rvm-capistrano软件包升级而来的。
添加这个要求:根据以前的文章最后修正错误

 gem 'rvm-capistrano', require: false 

虽然可能是一个额外的问题 – 运行rake rails:update:bin可能有助于清除最初的问题。