Ruby on rails `要求';:无法加载此类文件--rack webconsole(加载错误)
我刚升级到约塞米蒂,我有一个Rails 3.2.18应用程序在本地机器上运行。它运行正常(例如,Ruby on rails `要求';:无法加载此类文件--rack webconsole(加载错误),ruby-on-rails,ruby-on-rails-3,bundler,Ruby On Rails,Ruby On Rails 3,Bundler,我刚升级到约塞米蒂,我有一个Rails 3.2.18应用程序在本地机器上运行。它运行正常(例如,rails s工作,rails c工作,等等),但在清理rvm并重新绑定后,我在运行rails c或rails s时出现此错误: /Users/cweilemann/.rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.1/lib/bundler/runtime.rb:76:in `require': cannot load such file -- rack-we
rails s
工作,rails c
工作,等等),但在清理rvm并重新绑定后,我在运行rails c
或rails s
时出现此错误:
/Users/cweilemann/.rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.1/lib/bundler/runtime.rb:76:in `require': cannot load such file -- rack-webconsole (LoadError)
from /Users/cweilemann/.rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.1/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
from /Users/cweilemann/.rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.1/lib/bundler/runtime.rb:72:in `each'
from /Users/cweilemann/.rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.1/lib/bundler/runtime.rb:72:in `block in require'
from /Users/cweilemann/.rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.1/lib/bundler/runtime.rb:61:in `each'
from /Users/cweilemann/.rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.1/lib/bundler/runtime.rb:61:in `require'
from /Users/cweilemann/.rvm/gems/ruby-2.1.1@global/gems/bundler-1.6.1/lib/bundler.rb:132:in `require'
from /Users/cweilemann/Projects/railsapp/config/application.rb:7:in `<top (required)>'
在我的档案中,我有:
group :development do
...
gem 'rack-webconsole-pry', :require => 'rack-webconsole'
...
end
如果我将gem'rack webconsole pry',:require=>'rack webconsole'
行移到组:development
之外,应用程序的加载就很好。如果我删除:require=>“rack webconsole”
,则应用程序可以正常加载
这是捆绑机问题吗?还是Rails和Yosemite的问题
更新
gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.2
- RUBY VERSION: 2.1.1 (2014-02-24 patchlevel 76) [x86_64-darwin12.0]
- INSTALLATION DIRECTORY: /Users/cweilemann/.rvm/gems/ruby-2.1.1@railsapp
- RUBY EXECUTABLE: /Users/cweilemann/.rvm/rubies/ruby-2.1.1/bin/ruby
- EXECUTABLE DIRECTORY: /Users/cweilemann/.rvm/gems/ruby-2.1.1@railsapp/bin
- SPEC CACHE DIRECTORY: /Users/cweilemann/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-12
- GEM PATHS:
- /Users/cweilemann/.rvm/gems/ruby-2.1.1@railsapp
- /Users/cweilemann/.rvm/gems/ruby-2.1.1@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-ri --no-rdoc"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/cweilemann/.rvm/gems/ruby-2.1.1@railsapp/bin
- /Users/cweilemann/.rvm/gems/ruby-2.1.1@global/bin
- /Users/cweilemann/.rvm/rubies/ruby-2.1.1/bin
- /Users/cweilemann/.rvm/bin
- /usr/local/bin
- /usr/local/sbin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /usr/local/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /opt/X11/bin
当我这样做时:bundle env
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.2
- RUBY VERSION: 2.1.1 (2014-02-24 patchlevel 76) [x86_64-darwin12.0]
- INSTALLATION DIRECTORY: /Users/cweilemann/.rvm/gems/ruby-2.1.1@railsapp
- RUBY EXECUTABLE: /Users/cweilemann/.rvm/rubies/ruby-2.1.1/bin/ruby
- EXECUTABLE DIRECTORY: /Users/cweilemann/.rvm/gems/ruby-2.1.1@railsapp/bin
- SPEC CACHE DIRECTORY: /Users/cweilemann/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-12
- GEM PATHS:
- /Users/cweilemann/.rvm/gems/ruby-2.1.1@railsapp
- /Users/cweilemann/.rvm/gems/ruby-2.1.1@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-ri --no-rdoc"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/cweilemann/.rvm/gems/ruby-2.1.1@railsapp/bin
- /Users/cweilemann/.rvm/gems/ruby-2.1.1@global/bin
- /Users/cweilemann/.rvm/rubies/ruby-2.1.1/bin
- /Users/cweilemann/.rvm/bin
- /usr/local/bin
- /usr/local/sbin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /usr/local/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /opt/X11/bin
我得到:
Bundler 1.6.1
Ruby 2.1.1 (2014-02-24 patchlevel 76) [x86_64-darwin12.0]
Rubygems 2.2.2
rvm 1.26.0 (latest)
GEM_HOME /Users/cweilemann/.rvm/gems/ruby-2.1.1@railsapp
GEM_PATH /Users/cweilemann/.rvm/gems/ruby-2.1.1@railsapp:/Users/cweilemann/.rvm/gems/ruby-2.1.1@global
rubygems-bundler (1.4.3)
Bundler settings
without
Set for your local app (/Users/cweilemann/Projects/railsapp/.bundle/config): "test:development"
Gemfile
source 'https://rubygems.org'
gem 'rails', '3.2.18'
gem 'rubyzip', '~>0.9.9'
gem 'pg'
...
...
group :development do
gem "quiet_assets", ">= 1.0.1"
gem "better_errors", ">= 0.3.2"
gem "binding_of_caller", "~> 0.7.2"
gem 'annotate' #puts comments in models/tests with db fields for a given domain
gem 'debugger', "~> 1.6.6"
gem 'rack-webconsole-pry', :require => 'rack-webconsole' #default activated by backtick. may need rake patch task from this project's /lib/tasks
gem 'foreman' #support to start multiple processes at once (server, resque workers, etc.)
gem 'rails-erd' #generate ERD for domains. may require separate graphviz binary installation.
#functional, but not commonly used
end
group :test, :development do
gem 'rspec-rails', '~> 2.0'
gem 'poltergeist' # See https://github.com/jonleighton/poltergeist for how to install phantomjs
gem 'capybara'
gem 'launchy'
gem "api_matchers"
gem "shoulda-matchers", ">= 2.6.2", require: false
gem 'machinist', '~> 2.0'
gem "guard", "~> 1.6.2"
gem "spork", "~> 0.9.2"
gem "guard-rspec", "~> 2.5.1"
gem "guard-spork", "~> 1.4.0"
gem 'rb-fsevent', "~> 0.9.4"
gem 'rb-readline', "~> 0.5.1"
gem "simplecov", "~> 0.7.1", :require => false
gem 'puma'
gem 'sql_queries_count'
end
Gemfile.lock
GIT
remote: https://github.com/jwhitley/requirejs-rails.git
revision: f2330104aeca4d193fd5680a22ae7eee85d814b5
specs:
requirejs-rails (0.9.1)
railties (>= 3.1.1, < 4.1)
GEM
remote: https://rubygems.org/
specs:
...
...
rack-webconsole-pry (0.1.9)
json
multi_json (>= 1.0.3)
pry
rack
rails (3.2.18)
actionmailer (= 3.2.18)
actionpack (= 3.2.18)
activerecord (= 3.2.18)
activeresource (= 3.2.18)
activesupport (= 3.2.18)
bundler (~> 1.0)
railties (= 3.2.18)
...
...
PLATFORMS
ruby
DEPENDENCIES
...
...
rack-webconsole-pry
rails (= 3.2.18)
...
Could not find gem 'rack-webconsole-pry'.
Did you mean rack-webconsole-pry?
这似乎是机架式webconsole pry的问题 以下是文件:
source "https://rubygems.org"
group :development do
gem 'rack-webconsole-pry', :require => 'rack-webconsole'
end
下面将这些gems安装到Rubygems系统gems中,没有gems,一切正常:
$ bundle install --system
Using coderay 1.1.0
Using multi_json 1.10.1
Using method_source 0.8.2
Using json 1.8.1
Using rack 1.5.2
Using bundler 1.7.5
Using slop 3.6.0
Using pry 0.10.1
Using rack-webconsole-pry 0.1.9
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
$ bundle check
The Gemfile's dependencies are satisfied
$ bundle exec bundle check
The Gemfile's dependencies are satisfied
我将这些宝石安装到路径中,而不是安装到系统宝石中,所有东西都会严重损坏:
$ bundle install --path gems
Fetching gem metadata from https://rubygems.org/..........
Using bundler 1.7.5
Installing method_source 0.8.2
Installing slop 3.6.0
Installing coderay 1.1.0
Installing rack 1.5.2
Installing multi_json 1.10.1
Installing pry 0.10.1
Installing json 1.8.1
Installing rack-webconsole-pry 0.1.9
Your bundle is complete!
It was installed into ./gems
$ bundle check
The Gemfile's dependencies are satisfied
$ bundle exec bundle check
Could not find coderay-1.1.0 in any of the sources
Run `bundle install` to install missing gems.
加载时,rack webconsole pry不知怎么做了一些事情,打破了加载gems的方式,使得之后无法加载gems。当您将它移出开发组时,它就不再是必需的,所以一切都很好。当您将其放入“开发”组时,它会被加载,但随后会破坏gems的加载方式,然后再也无法找到实际安装的gems来加载它们。您从
bundle env
获得的输出显示:
Bundler settings
without
Set for your local app (/Users/cweilemann/Projects/railsapp/.bundle/config): "test:development"
这意味着bundle install
将跳过development
组(以及test
组)中的任何安装
从您的
.bundle/config
文件中删除该行,然后再次运行bundle install
,它应该会开始工作。我无法在我的机器上的新Rails项目中复制该行。一些附加信息可能会有所帮助:来自gem env
的输出、bundle env
和bundle show--path rack webconsole pry
。我怀疑这与您的rvm宝石有关。@Timmore更新了请求的信息。非常感谢你的帮助!您能试用最新版本的Bundler吗?(运行gem安装bundler
以进行更新。)将其删除。。。发现了问题。回答如下。谢谢蒂姆!谢谢你的时间!