Câu trả lời:
Trước hết, hãy cập nhật cài đặt RVM của bạn bằng cách chạy rvm get stable
.
Để đảm bảo rằng bạn đang chạy phiên bản RVM mới, sau đó bạn sẽ cần chạy rvm reload
(hoặc chỉ cần mở một thiết bị đầu cuối mới).
Sau khi hoàn tất, bạn có thể yêu cầu RVM liệt kê các phiên bản ruby có sẵn để cài đặt bằng cách chạy rvm list known
.
Trong đầu ra bây giờ bạn sẽ thấy:
# MRI Rubies
...
[ruby-]1.9.2[-p320]
...
Các dấu ngoặc vuông xung quanh cấp bản vá cho biết rằng đây hiện là cấp bản vá mặc định của RVM cho ruby 1.9.2.
Cuối cùng, để cài đặt phiên bản ruby mới, chỉ cần chạy rvm install 1.9.2
- và đợi nó được biên dịch!
Nâng cấp trình thông dịch ruby và giữ các bộ đá quý hiện có:
$ rvm upgrade 1.9.2-p0 1.9.2
Are you sure you wish to upgrade from ruby-1.9.2-p0 to ruby-1.9.2-p136? (Y/n): Y
Để thay thế bằng bản phát hành ổn định mới nhất 1.9.2. Điều này tránh sự lộn xộn.
Một số mẹo hữu ích bổ sung, nhờ nhận xét (@Mauro, @James, @ACB)
$ rvm list known
# NOTE: you probably want to upgrade your rvm first, as the list of known rubies seems to be coupled to the rvm version.
$ rvm get stable
$ rvm list known #pick your ruby
rvm list known
xem các phiên bản ruby có sẵn mà bạn có thể nâng cấp lên.
Bản cập nhật đầu tiên RVM:
rvm get stable
Sau đó cập nhật phiên bản Ruby của bạn:
rvm upgrade 2.0.0
Chọn có cho tất cả các câu hỏi:
Are you sure you wish to upgrade from ruby-2.0.0-p195 to ruby-2.0.0-p247? (Y/n): Y
Are you sure you wish to MOVE gems from ruby-2.0.0-p195 to ruby-2.0.0-p247?
This will overwrite existing gems in ruby-2.0.0-p247 and remove them from ruby-2.0.0-p195 (Y/n): Y
Do you wish to move over aliases? (Y/n): Y
Do you wish to move over wrappers? (Y/n): Y
Do you also wish to completely remove ruby-2.0.0-p195 (inc. archive)? (Y/n): Y
Nếu bạn muốn cập nhật đá quý của mình lên phiên bản mới nhất, bạn có thể làm:
rvm all do gem update
CHỈNH SỬA: Tôi vừa thực hiện việc này hôm nay cho phiên bản mới nhất của ruby 2.0.0 (Tôi đã cập nhật từ ruby-2.0.0-p195 lên ruby-2.0.0-p353). Sau đó, tôi đã gặp lỗi phân đoạn khi cố gắng cập nhật đá quý. Điều này xảy ra do các viên đá quý đã được cài đặt cho ruby-2.0.0-p195 và một số trong số chúng không tương thích với p353.
Bây giờ bạn có thể đi và cố gắng tìm những viên ngọc không tương thích, nhưng giải pháp đơn giản nhất là xóa tất cả những viên đá quý đã cài đặt và cài đặt lại. Tôi chỉ đơn giản là loại bỏ gems/ruby-2.0.0-p353
thư mục được đặt trong /usr/local/rvm
. Nó có thể là một nơi khác cho bạn.
Sau đó tôi chạy gem install bundler
và đối với mỗi ứng dụng rails của tôi, tôi đã làm bundle install
.
như thế này:
rvm update; rvm reload
rvm install ruby-1.9.2-p136
rvm --default ruby-1.9.2-p136
Bạn có thể cài đặt bất kỳ mức vá lỗi nào bằng cách theo dõi trang trong wiki của họ .
Ngoài ra, mỗi viên ruby là độc lập, vì vậy bạn không thực sự 'nâng cấp và giữ các viên đá quý' mà là cài đặt phiên bản vá mới và sau đó cài đặt các viên đá quý trong môi trường ruby mới đó.
Đây có thể là những bộ đá quý phát huy tác dụng, tuy nhiên tôi không sử dụng chúng.
Đừng quên cập nhật rvm của bạn, đề phòng nó đã lâu.
Câu trả lời của npad chắc chắn đưa ra những điều cơ bản nên tôi sẽ không nhắc lại các bước đó, nhưng có một số câu trả lời ở đây gợi ý sử dụng rvm upgrade
. Tôi biết rằng rvm cung cấp cho bạn tùy chọn, nhưng nó hơi nguy hiểm.
IMO, an toàn hơn và nhiều hơn nữa "RVM cách" là lần đầu tiên rvm install
phiên bản ruby mới, sau đó sử dụng rvm gemset copy
lệnh để sao chép gemset của bạn (s) lên phiên bản ruby mới, ví dụ như rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset
. Sau đó, bạn có thể dễ dàng chuyển dự án của mình sang sử dụng gemset mới được sao chép (tôi khuyên bạn nên sử dụng .rvmrc
tệp trong thư mục dự án của bạn) và xem mã của bạn có bị lỗi không. Nếu đúng như vậy, việc thay đổi trở lại phiên bản ruby cũ chỉ là việc chuyển bộ đá quý.
Nhưng ngay cả khi bạn không sử dụng gemsets (mặc dù tôi cho rằng bạn làm như vậy vì bạn đã gắn thẻ đường ray cho câu hỏi này), việc sử dụng rvm upgrade
có thể dẫn đến những lỗi không mong muốn. Và nếu mã của bạn bị hỏng, bây giờ bạn phải cài đặt lại phiên bản cũ một lần nữa. Chỉ cần mất thêm một chút thời gian và làm theo cách sạch sẽ.
Tôi đoán nó rvm install 1.9.2-head
Bạn có thể thấy những viên hồng ngọc có sẵn với rvm list known
head
nhận được mức vá mới nhất? tôi nghĩ đó là phiên bản mới nhất, có nghĩa là nó có thể là một thứ gì đó không ổn định và đang thử nghiệm.
Bài đăng trên blog này sẽ hữu ích: http://pogodan.com/blog/2011/09/06/ruby-1-9-3-for-development
yếu tố cần thiết:
rvm get head
rvm reload
wget https://gist.github.com/raw/1008945/4edd1e1dcc1f0db52d4816843a9d1e6b60661122/ruby-1.9.2p290.patch
rvm install ruby-1.9.2-p290 --patch ruby-1.9.2p290.patch -n patched
rvm get latest
/rvm get head
là những cách chính xác để nâng cấp rvm bây giờ.