bin / rails máy chủ rails: 6: cảnh báo: lỗi APP_PATH hằng số đã được khởi tạo


79

Tôi đã thử một số cách như gỡ cài đặt / cài đặt lại đường ray và đá quý nhưng vô ích.

Khi tôi vào dự án mới của mình và chạy rails s hoặc gói máy chủ thực thi rails, tôi gặp lỗi này:

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]

Bên trong thùng rác / đường ray của tôi, tôi thấy mã này:

#!/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'

Có ai biết tại sao tôi tiếp tục nhận được lỗi đó khi tôi chạy rails s không?

Tôi đã truy cập vào Google và có vẻ như có lỗi với viên ngọc mùa xuân nhưng tôi dường như không thể làm cho nó hoạt động được.


6
Tôi đã gặp sự cố này và nguyên nhân là do cấu hình trên database.ymlbộ điều hợp trong khác nhau Gemfile.
monteirobrena

Trên thực tế, tôi cũng gặp phải lỗi này khi tôi đang sử dụng bulkmail gem. Nếu tôi nhận xét gem này thì lỗi không đến.
Shailendr singh

stackoverflow.com/a/35851557/3728916 giải quyết vấn đề của tôi
ImranNaqvi

Câu trả lời:


116

Tôi không thể tìm thấy an_initilizer.rb trong thư mục của mình và tôi đã thử gỡ cài đặt / cài đặt spring gem nhưng nó không hoạt động.

Tuy nhiên, cuối cùng tôi đã xoay sở để làm cho nó hoạt động.

Rõ ràng có một số xung đột với mùa xuân và đường ray 4+.

Tôi cần chạy:

rake rails:update:bin 

Nhưng tôi gặp một lỗi khác:

Library not loaded: libmysqlclient.18.dylib

Tôi đã chạy lệnh sau mà tôi tìm thấy trên một bài đăng stackoverflow khác:

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

Sau đó chạy lệnh ban đầu:

 rake rails:update:bin 

Sau đó chạy lệnh máy chủ:

 rails s

Và bây giờ Máy chủ WebBrick của tôi đang chạy.


Cảm ơn bạn rất nhiều! Điều này thực sự hữu ích!
Vadim

1
Hoàn hảo, tôi cũng phải chạy bin/rake db:migrate RAILS_ENV=development
Shadoath

Cũng có thể chấp nhận câu trả lời này; nó dường như làm việc cho rất nhiều người.
Paul Richter

1
Nó có vẻ liên quan đến mysql, nếu bạn bao gồm mysql2 trong gemfile của mình. lỗi này sẽ xuất hiện cho dù bạn có sử dụng mysql2 làm cơ sở dữ liệu hay không.
Chris.Zou

Tôi đã có những lỗi tương tự. Điều này đã khắc phục sự cố của tôi. Cảm ơn bạn!
cyonder


13

Nếu bạn đang sử dụng El Capitan (OS X 10.11), Bảo vệ toàn vẹn bảo mật (SIP) sẽ ngăn việc liên kết vào / usr / lib để sửa mysql. Liên kết nó vào / usr / local / lib để thay thế:

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

Tôi gặp lỗi ln: /usr/local/lib/libmysqlclient.18.dylib: Tệp tồn tại .. Có ý kiến ​​gì không?
Isaac Y

@IsaacY còn tùy chọn -f thì sao?
geoom

Nếu bạn cài đặt mysql sử dụng homebrew hoặc phương pháp khác mà bạn có thể tìm ra con đường thư viện bằng cách chạy mysql_config --libsthì bạn làmsudo ln -s mypath /usr/local/lib/libmysqlclient.18.dylib
gosukiwi

6

Đây là công việc đối với tôi.

gem uninstall mysql2

bundle install hoặc là gem install mysql2


3

Tôi đã nhận được cùng một lỗi. Đã xóa mùa xuân khỏi Gemfile và được nhóm lại. Không thực sự là một giải pháp.

Tôi đã tìm thấy mã tạo ra lỗi này trong config/initializers/an_initializer.rb

require "lib/a_file_i_need"

Tôi đã thay đổi nó cho

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

gắn #{Rails.root}vào đường dẫn đã giúp tôi thoát khỏi lỗi.
Jignesh Gohel

2

Tôi gặp lỗi này khi cố cập nhật rails 4 và imagemagick và rmagick. Vì vậy, tôi chỉ chạy

gem gỡ cài đặt rmagick

Chọn tùy chọn Tất cả các phiên bản. Sau đó thử lại

CHỈNH SỬA: Điều này lại xảy ra với tôi vừa rồi vì tôi đã cố gắng sử dụng một viên đá quý mà không cần cài đặt viên đá quý cơ bản cần thiết. Trong trường hợp của tôi, giải pháp là cài đặt 'omniauth-google' trước khi cố gắng sử dụng 'omniauth-google-oauth2', nhưng vì tôi không cài đặt nên lại gặp lỗi tương tự


2

Tôi cũng gặp lỗi tương tự. Tôi đã chạy ruby ​​2.1.3 và rails 4.1.6 trên Mavericks, sau đó tôi chuyển sang Yosemite và cài đặt phiên bản rails 4.2.0 ruby ​​2.1.5 và các ứng dụng của tôi tôi đã tạo trong phiên bản trước không hoạt động với phiên bản mới , vì vậy tôi đã tạo một số bộ đá quý với RVM và cài đặt phiên bản 2.1.3. Bây giờ khi tôi muốn chạy máy chủ, tôi gặp lỗi sau:

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]

Và như tobu đã đề cập, tôi đã chạy:

rake rails:update:bin

Tôi hiểu rồi:

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

Sau đó, tôi chạy cái này:

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

Và cuối cùng tôi lặp lại lệnh đầu tiên mà thiết bị đầu cuối yêu cầu tôi điều này:

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

Tôi chỉ cần gõ 'Y' và nhấn trở lại.

Sau tất cả những điều này, tôi đã bắt đầu làm việc và suôn sẻ.

Cảm ơn.


2

Tôi nhận được lỗi này sau khi nâng cấp postgresql.

$ gem uninstall pg
$ gem install pg

đã giải quyết vấn đề này cho tôi.


2

Điều này đã xảy ra với tôi sau khi làm một brew upgrade. Tôi đoán rằng điều này đã phá vỡ một số viên ngọc có phần mở rộng gốc, mặc dù không có thông báo lỗi nào trỏ đến điều đó.

Những gì tôi cuối cùng đã làm là gỡ bỏ hoàn toàn các viên ngọc đã cài đặt của mình (Trong trường hợp của tôi, tôi đã gỡ cài đặt hoàn toàn và cài đặt lại phiên bản ruby ​​bằng cách sử dụng rbenv).
Chạy đã bundle installbiên dịch lại các tiện ích mở rộng gốc và mọi thứ đang chạy lại.


1
Trong trường hợp của tôi, đó là sau khi nâng cấp mysql, vì vậy tôi chỉ cần gỡ cài đặt đá quý mysql gemvà sau đó chạy một gói cài đặt.
guzart

1

Tôi cũng gặp lỗi tương tự, nó liên quan đến gem dotenv. Hướng dẫn thêm phần sau vào Gemfile:

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

Nhưng khi nó bật ra, dotenv/rails-nowgây ra lỗi. Nếu bạn sử dụng dotenvkhông yêu cầurails-now


1

Bạn có đang sử dụng pg và mysql trong các nhánh khác nhau không? Nếu có, vui lòng xác nhận tệp cấu hình db.


1

Tôi sẽ đăng những gì hiệu quả cho tôi.

Bình luận

gem 'spring'

Thêm vào gem 'net-shh'

và chạy bundle install

Và khởi động lại máy chủ của bạn


1

Tôi nhận được lỗi này sau khi nâng cấp đường ray. Việc tắt springcho tôi gợi ý rằng vấn đề là với:

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

Thay đổi để:

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

Đã giải quyết vấn đề.


0

Tôi đã gặp phải thông báo lỗi tương tự khi cố gắng khởi động ứng dụng trong môi trường Vagrant. Nó hoàn toàn không xuất hiện sau khi không có thay đổi nào đối với mã ứng dụng (và các hành vi kỳ lạ khác theo sau, chẳng hạn như development.rb bị xóa khi cố gắng chạy ứng dụng).

Cuối cùng, tôi chỉ cần tạm dừng VM và khởi động lại nó, mọi thứ sau đó đều ổn vì vậy tôi cho rằng có lẽ đó là sự cố với đồng bộ hóa tệp / thư mục chia sẻ? (thư mục chia sẻ Vagrant mặc định đang được sử dụng).


0

Chạy những điều này trong bảng điều khiển:

rake tmp:clear
rake secret

0

NẾU rake rails:update:bin đưa ra các lỗi bổ sung:

Gần đây tôi đã thực hiện một số bảo trì máy chủ và sau đó đã cập nhật OpenSSL.

Khi tôi thử chạy rake rails:update:bin lệnh, tôi gặp lỗi liên quan đến openSSL.

Sau khi xây dựng lại phiên bản Ruby của tôi (`` rvm reinstall ruby-xxx 'with RVM), cả hai lỗi đều biến mất.

Tôi đoán điều này luôn đáng để thử.


0

Vấn đề của tôi là tôi đang sử dụng phiên bản ruby ​​1.9.3 lỗi thời với đường ray 4.2. Tôi đã nâng cấp lên 2.1.2, xóa dự án bị hỏng, chạy blog mới rails để tạo lại dự án của mình, điều hướng vào ứng dụng mới tạo của tôi và chạy máy chủ rails và nó đã hoạt động.


0

Tôi vừa gặp sự cố này và thấy rằng nguyên nhân là do tôi đã xóa một viên ngọc khỏi tệp gem mà không xóa các requiretham chiếu khác . Trong trường hợp của tôi, tôi chỉ cần xóa nó khỏi config / application.rb.


0

Gần đây có lỗi này, nguyên nhân là do spring, vì mã đề xuất của nó trong tệp thực thi:

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

Ban đầu nó mong đợi một LoadErrormùa xuân chính nó trong quá trình sản xuất, nhưng bằng mã này, tất cả các lỗi tải khác cũng sẽ được bỏ qua.

Vì vậy, nếu bạn có bất kỳ điều gì khác LoadErrortrong quá trình tải đường ray (ví dụ trong các tuyến đường / init) khởi động Spring worker không thành công và sau đó sẽ có nhánh cố gắng tải lại mọi thứ như không có lò xo.


0

Đối với tôi, vấn đề này được trình bày là kết quả của việc nâng cấp gói rvm-capistrano trong số những thứ khác.
Thêm điều này yêu cầu: những thứ đã sửa sai cuối cùng theo bài đăng trước này

gem  'rvm-capistrano',  require: false

Mặc dù có thể là một vấn đề bổ sung - vì việc chạy rake rails:update:bincó thể đã giúp giải quyết vấn đề ban đầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.