簡體   English   中英

如何使用rvm將我的ruby 1.9.2-p0升級到最新的補丁級別?

[英]How do I upgrade my ruby 1.9.2-p0 to the latest patch level using rvm?

我當前版本的ruby是ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]但是我想用rvm將它更新到最新的補丁級別。 我怎樣才能做到這一點?

首先,通過運行rvm get stable更新RVM安裝。

為了確保您運行新的RVM版本,您需要運行rvm reload (或者只是打開一個新的終端)。

完成后,您可以通過運行rvm list known讓RVM列出可安裝的ruby版本。

在輸出中,您現在應該看到:

# MRI Rubies
...
[ruby-]1.9.2[-p320]
...

補丁級別周圍的方括號表示這是目前RVM的ruby 1.9.2的默認補丁級別。

最后,要安裝新的ruby版本,只需運行rvm install 1.9.2 - 並等待它編譯!

升級ruby解釋器保留現有的gemsets:

$ 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

用1.9.2的最新穩定版本替換。 這可以避免混亂。

一些額外的有用提示,感謝評論(@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:

rvm get stable

然后更新你的Ruby版本:

rvm upgrade 2.0.0

對所有問題選擇“是”:

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

如果您希望將寶石更新為最新版本,您可以:

rvm all do gem update

編輯:我今天剛剛為最新版本的ruby 2.0.0做了這個(我從ruby-2.0.0-p195更新到ruby-2.0.0-p353)。 之后,當我嘗試更新寶石時,我遇到了分段錯誤。 發生這種情況的原因是為ruby-2.0.0-p195安裝了gem,其中一些與p353不兼容。

現在您可以嘗試找到不兼容的寶石,但最簡單的解決方案是刪除所有已安裝的寶石並重新安裝它們。 我只是刪除了位於/usr/local/rvm gems/ruby-2.0.0-p353目錄。 它可能是你的其他地方。

然后我運行了gem install bundler ,對於我的每個rails應用程序,我都進行了bundle install

像這樣:

rvm update; rvm reload
rvm install ruby-1.9.2-p136 
rvm --default ruby-1.9.2-p136

您可以按照Wiki中的頁面安裝任何補丁級別。

此外,每個ruby都是獨立的,所以你並沒有真正“升級和保留寶石”,而是安裝新的補丁版本,然后在新的ruby環境中安裝寶石。

這可能是寶石集發揮作用,但我不使用它們。

不要忘記更新你的rvm,以防它已經有一段時間了。

npad的答案肯定列出了基礎知識,所以我不會重申這些步驟,但這里有幾個答案建議使用rvm upgrade 我知道rvm為你提供了選擇,但它有點危險。

IMO,更安全,更“rvm方式”是先rvm install新的ruby版本,然后使用rvm gemset copy命令將你的gemset復制到新的ruby版本,例如rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset 然后,您可以輕松地將項目切換為使用新復制的gemset(我建議在項目目錄中使用.rvmrc文件)並查看代碼是否失敗。 如果是這樣,改回舊的ruby版本只需要切換gemset。

但即使您不使用gemsets(雖然我假設您在此問題上標記了rails),但使用rvm upgrade會導致意外故障。 如果您的代碼中斷,現在您必須重新安裝舊版本。 花一點時間,干凈利落。

我猜它的rvm install 1.9.2-head

你可以看到rvm list known可用紅寶石

這篇博客文章應該會有所幫助: http//pogodan.com/blog/2011/09/06/ruby-1-9-3-for-development

要領:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM