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 install
或gem 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
可能有助于清除最初的问题。