rvmを使用してruby 1.9.2-p0を最新のパッチレベルにアップグレードするにはどうすればよいですか?


116

Rubyの現在のバージョンはですruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]が、rvmを使用して最新のパッチレベルに更新したいと考えています。これどうやってするの?

回答:


163

まず、を実行してRVMインストールを更新しますrvm get stable

新しいRVMバージョンを実行していることを確認するには、実行するrvm reload(または単に新しいターミナルを開く)必要があります。

それが完了したら、を実行して、インストールできるrubyバージョンをリストするようにRVMに要求できますrvm list known

出力には、次のように表示されます。

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

パッチレベルを囲む角括弧は、これが現在ruby 1.9.2のRVMのデフォルトパッチレベルであることを示しています。

最後に、新しいrubyバージョンをインストールするには、実行rvm install 1.9.2して、コンパイルされるのを待ちます。


29
取得している人のためにRVM更新が削除されました:ERRORを。rvm get latest/ rvm get headは、現在rvmをアップグレードする正しい方法です。
jibiel '25年

98

Rubyインタープリターアップグレード、既存のgemset 保持します。

$ 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

3
また、rvm list knownアップグレード可能なRubyバージョンを確認することもできます。
James Chevalier

@Mauro Nidolaによって提案された編集"$ rvm upgrade 1.9.2 1.9.2-p0は$ rvm upgrade 1.9.2-p0 1.9.2に変更する必要があります"
iDev

彼のコメント@ACBが表示されないので、変更します。担当者は、再確認する必要がないと言っています。Jamesのコメントも更新しています
oma

@oma、私は別のテクノロジーの出身です。そのため、それを再確認する必要があるかもしれません。これは、無効な編集として却下された誰かによって提案された編集でした。このstackoverflow.com/review/suggested-edits/1365082を確認してください。理想的には、彼はコメントとして投稿するべきでしたが、代わりに私が彼に代わって投稿しました。
iDev 2013年

34

最初に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

gemを最新バージョンに更新する場合は、次の操作を実行できます。

rvm all do gem update

編集:ruby 2.0.0の最新バージョン(ruby-2.0.0-p195からruby-2.0.0-p353に更新しました)のために今日これを実行しました。その後、宝石を更新しようとすると、セグメンテーション違反が発生しました。これは、gemがruby-2.0.0-p195にインストールされていて、その一部がp353と互換性がないために発生します。

これで、互換性のない宝石を見つけて試すことができますが、最も簡単な解決策は、インストールされているすべての宝石を削除して、もう一度インストールすることでした。にあるgems/ruby-2.0.0-p353ディレクトリを単に削除しました/usr/local/rvm。それはあなたのためのどこか別の場所である可能性があります。

それから私は走りましたgem install bundler、そして、私のそれぞれのRailsアプリのために私はしましたbundle install


16

このような:

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

3
私はこの答えが好きです。rubyのバージョンをアップグレードすると、rvmを使用する目的が損なわれるように感じます。p0と一緒に別のバージョンをインストールしてから、新しい(またはいずれかの)バージョンをデフォルトとして宣言するのはエレガントに思えます。
Tass

2
特定のRubyバージョンに脆弱性が発見された場合など、セキュリティ上の理由から最新のパッチへのアップグレードが必要になる場合があります。
アサドR.

2

Wikiのページに従って、任意のパッチレベルをインストールできます

また、各ルビーは独立しているため、実際には「gemのアップグレードと維持」ではなく、新しいパッチバージョンをインストールしてから、その新しいruby環境にgemをインストールします。

これは宝石セットが登場した可能性がありますが、私は使用しません。

しばらくの間、念のため、rvmも更新することを忘れないでください。


2

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プロジェクトディレクトリのファイルを使用することをお勧めします)を使用するようにプロジェクトを簡単に切り替え、コードが失敗するかどうかを確認できます。もしそうなら、古いルビバージョンに戻すことは、宝石セットを切り替えるだけのことです。

ただし、gemsetsを使用しない場合でも(この質問でrailsにタグを付けたので使用していると思いますが)、を使用するrvm upgradeと予期しないエラーが発生する可能性があります。コードが壊れた場合は、古いバージョンを再インストールする必要があります。もう少し時間をかけてクリーンな方法でやってください。


1

たぶん rvm install 1.9.2-head

あなたはで利用可能なルビーを見ることができます rvm list known


head最新のパッチレベルを取得しますか?私はそれが最新のバージョン用だと思っていました。つまり、不安定で実験的なものになる可能性があるということです。
Lan

そうだね。最新とパッチレベルを混ぜました。
ヘイッキ

1

このブログ投稿は役に立ちます: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

これは理論的には質問に回答するかもしれませんが、回答の本質的な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
トカゲに請求する
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.