2011-04-03 40 views
9

tôi đã cố gắng sử dụng bundle update cho một dự án Rails 3.0.0 Tôi tạo ra, hy vọng tất cả các nội dung trong Gemfile (và cũng Gemfile.lock) để phản ánh ray 3.0.5 ...Tại sao "cập nhật gói" không cập nhật Gemfile để sử dụng Rails 3.0.5?

Nhưng nó tiếp tục là 3.0.0 .. ngay cả khi tôi chạy bundle update rails, nó vẫn tiếp tục là 3.0.0

Ngoài sự tò mò, tôi đã tạo một dự án Rails 3.0.0 hoàn toàn mới, sau đó chạy cập nhật gói trên đó ... và nó vẫn nói "đang sử dụng đường ray 3.0.0 ", tại sao? Và làm cách nào để cập nhật bundle update lên 3.0.5? (Khác với cách rõ ràng để thay đổi Gemfile bằng tay)

(Tôi thậm chí đã cố gắng thay đổi sqlite3-ruby để sqlite3 trong Gemfile, vì 3.0.5 dường như sử dụng sqlite3 để thay thế. Và railssqlite3 là 2 viên ngọc chỉ được liệt kê trong Gemfile)

Trả lời

12

Bạn đã có câu trả lời: thay đổi phiên bản đá quý bằng tay và chạy bundle update rails.

Tôi nghi ngờ bạn có gem 'rails', '3.0.0' trong Gemfile của bạn. Chạy bundle update rails sẽ không thay đổi phiên bản nếu bạn đã chỉ định phiên bản chính xác.

Dưới đây là một số thông tin về các cách khác nhau để chỉ định phiên bản đá quý trong Gemfile của bạn.

http://gembundler.com/rationale.html

+0

vì vậy tôi đoán câu trả lời của bạn là, '' 3.0.0'' trong Gemfile có nghĩa là sử dụng phiên bản chính xác. Nếu tôi muốn cập nhật lên phiên bản mới nhất bất cứ khi nào 'cập nhật gói' được sử dụng, thì hãy sử dụng'> 3.0.0', mặc dù tôi không biết điều này có được khuyên dùng hay không, nhưng chắc chắn giữ dự án bằng cách sử dụng đường ray mới nhất. –

13

Vâng bạn có thể có

gem 'rails', '3.0.0' 

thay đổi nó để

gem 'rails', '~>3.0.0' 

này sẽ chỉ nâng cấp phiên bản nhỏ của đường ray (3.0.5 & 3.0.6 ...) . Hoặc bạn có thể thay đổi nó để

gem 'rails', '~>3.0' 

nếu bạn muốn nâng cấp lên đường ray 3.1 nhưng không phải là 4.0

1

Đây là một trong những kết quả đầu khi tìm kiếm "bundler cập nhật sẽ không" trên Google để tôi thêm sau đây là một câu trả lời khác. Tôi đã phải đối mặt với vấn đề này trong một trong các dự án của tôi.

Trong một trong những dự án của tôi, tôi đã có một tập tin .bundle/config trong đó có dòng sau:

BUNDLE_FROZEN: "1" 

này đã gây ra bundle update <gemname> không có hiệu lực. Tôi đã xóa dòng trên và bắt đầu cập nhật lại.

+0

bạn đúng, đó có thể là một trong những khả năng. – Aamir

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