2012-06-12 23 views
8

vì vậy tôi chạy:Không thể kích hoạt ray 3.0.1 vì bundler phiên bản xung đột

$ gem install rails --version 3.0.1 

Successfully installed rails-3.0.1 
1 gem installed 
Installing ri documentation for rails-3.0.1... 
Installing RDoc documentation for rails-3.0.1... 

sau đó tôi nhận được lỗi:

$ rails -v 
/usr/local/rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1637:in `raise_if_conflicts': Unable to activate rails-3.0.1, because bundler-1.1.4 conflicts with bundler (~> 1.0.0) (Gem::LoadError) 
from /usr/local/rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:746:in `activate' 
from /usr/local/rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems.rb:1232:in `gem' 
from /usr/local/rvm/gems/[email protected]/bin/rails:18:in `<main>' 
from /usr/local/rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval' 
from /usr/local/rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>' 

Trả lời

3

Bạn có thể cần phải cập nhật để bundler 1.1.4.

gem update bundler

nên thực hiện thủ thuật.

+0

Tôi có cùng lỗi như trên. Tôi chạy sửa chữa này, nhưng bundler là "upt to date" và khi tôi thử rails -v một lần nữa tôi nhận được cùng một đầu ra chính xác như trước. Cứu giúp! – stopshinal

+2

Vấn đề ở đây không phải từ gói bị lỗi thời, mà là quá cập nhật. '~> 1.0.0' có nghĩa là bất kỳ phiên bản nào từ tối đa' 1.0.0', nhưng không bao gồm '1.1.0'. –

+0

Colin đúng, xem câu trả lời của anh ta, tôi không được chấp nhận nên tôi có thể xóa nó. – ipd

1

Tôi đã gặp vấn đề tương tự với mysql. Tôi đã gỡ cài đặt gem mysql và cài đặt phiên bản mới nhất của gem mysql. RVM có ổn không?

2

Điều này có thể do Ruby v1.9.2/3 sử dụng bundler v1.1.4 trong khi Rails v3.0.1 yêu cầu bundler v ~ 1.0.0. Do đó, bằng cách cập nhật phiên bản Rails thành v3.2.6, cuộc xung đột được giải quyết. Xung đột này có thể dễ dàng được giải quyết bằng cách khớp với phiên bản Ruby và Rails.

7

Vì vậy, Rails 3.0.1 yêu cầu Bundler v1.0.0 - v1.0.22 (thực tế bất kỳ phiên bản 1.0.x tối đa, nhưng không bao gồm, 1.1.0), nhưng bạn có phiên bản mới hơn của Bundler đang được tải khi Rails được khởi động. Bạn có thể gỡ cài đặt (các) phiên bản mới hơn của Bundler (mặc dù đây là cách cực kỳ khó khăn để giải quyết vấn đề) hoặc vì bạn đang sử dụng RVM, chỉ cần tạo một gemset cho Rails 3.0.1.

$ rvm gemset create rails_3.0.1 
$ rvm gemset use rails_3.0.1 
$ gem install rails -v 3.0.1 
$ rails -v 
3.0.1 

Lưu ý: điều này đòi hỏi rằng Bundler không được global gemset của bạn cho phiên bản Ruby bạn đang cố gắng để sử dụng. Nếu viên đá quý global chứa phiên bản Bundler bằng hoặc cao hơn 1.1.0 thì bạn sẽ gặp lỗi giống như trước đây.

Cập nhật: Một giải thích nhỏ về ~> và phiên bản RubyGems có thể hữu ích. section on pessimistic version constraint trong tài liệu RubyGems thực hiện một công việc tuyệt vời bao gồm mọi thứ.

Các vấn đề liên quan