rvmrcまたはruby-versionファイルを使用して、RVMでプロジェクトのgemsetを設定しますか?


230

私は、Rubyバージョンマネージャーである RVMを使用して、RailsプロジェクトごとにRubyバージョンとgemのセットを指定しています。

プロジェクトディレクトリに.rvmrc移動するたびに、Rubyのバージョンとgemsetを自動的に選択するファイルがありますcd

RVM 1.19.0をインストールした後、メッセージが表示されます

を使用していますが.rvmrc、信頼する必要があり、速度が遅く、他のルビーマネージャーとの互換性がありません。この警告の.ruby-version使用に切り替えるrvm rvmrc to [.]ruby-versionか無視してrvm rvmrc warning ignore /Users/userName/code/railsapps/rails-prelaunch-signup/.rvmrc、この警告を無視して、 .rvmrcRVM 1とRVM 2のデフォルトのプロジェクトファイルを引き続き使用でき ます。すべてのファイルの実行に関する警告rvm rvmrc warning ignore all.rvmrcs

.rvmrcファイルを使い続けるべき.ruby-versionですか、それともファイルに切り替える必要がありますか?どちらが最適ですか?影響は何ですか?

回答:


372

.rvmrcファイルにカスタムシェルコードが含まれている場合.rvmrcは、シェルコードを含めることができるため、引き続き使用してください。

Rubyのバージョンを切り替えることだけが目的の場合は.ruby-versionrbenvchrubyなどの他のRubyバージョンスイッチャーでサポートされているものを使用してください。このファイルはRubyバージョンの名前であり、決して実行されないため、信頼する必要もありません。

使用.ruby-versionする場合@gemset、ファイルに含めることができますが、これは他のスイッチャーと互換性がありません。互換性を維持するには、別のファイル.ruby-gemsetでgemset名を使用します。これは、他のツールでは無視されます(と一緒にのみ機能します.ruby-version

たとえば、単純な場合.rvmrc

rvm use 1.9.3@my-app

次のように変換できます.ruby-version

1.9.3

そして.ruby-gemset

my-app

.rvmrc他のプロジェクト構成ファイルよりも優先されるため、必ずファイルを削除してください。

rm .rvmrc

9
すべてのアプリケーションが新しい.ruby-versionファイルと.ruby-gemsetファイルをサポートしているわけではなく、.rvmrcのみをサポートしていることに注意してください。(特にRubyMine)。もちろん、これは新しいシステムに移行するかどうかの選択に影響します。これを追跡するのにかなりの時間がかかったので、私は答えですでにこれを指摘していました。しかし、私の答えは、何らかの理由で削除されました...
ジョルジオ

2
これに関する「公式」ドキュメントへのリンクはありますか?私はRVMサイトでこれがどのように機能するかを調べ始めましたが、新しいrvmrcファイルとして漠然とした言及がありましたが、これがどのように機能するかについては何も見つかりませんでした。
eirc 2013年

2
それは完全に文書化が、ここで我々がすでに持っているものではありませんだrvm.io/workflow/projects/#ruby-versionsを
mpapis

4
1.9.3-p194を.ruby-versionに置くだけでは機能しません。上記のドキュメントを参照してください、rvm --create --ruby-version use 1.9.3-p194作業を行うと、コンテンツ内部は実際にあるruby-1.9.3-p194
Jinzhaoフオ

2
RubyMineの現在のバージョンは、.ruby-versionスタイルをサポートしています。6.3.2で確認可能
BeepDog 2014年

76

.rvmrcから.ruby-version + .ruby-gemsetに切り替える簡単な方法

rvm rvmrc to .ruby-version

1
本当ですが、それは[]を囲んでいます。どういうわけか、私は理解していません。(多分これは私がよく知らない慣習です。)実際にメッセージをグーグル検索して、この答えを見つけました。
ゼム

2
@zem []は、ドットがオプションである[.]ruby-versionことを示します。角括弧は、オプション性を示すための一般的な規則です(一般に、ルビではありません)。したがって、ドットなしで「ruby-version」と呼ばれるファイルを使用でき、それも使用されます。これは、デフォルトで「ドットファイル」を非表示にするシステムでファイルの可視性を高めたい場合に役立ちます。しかし、それは明確ではないことに同意します。
Matt Gibson

それは言うCould not load .rvmrc
アブドラ

4

.ruby-versionand .ruby-gemsetファイルを簡単に作成する場合は、次のようなコマンドを使用できます。

rvm use 2.1.1@nancy --create

rvm --create --ruby-version 2.1.1@nancy

2

両方を試すことができます。プロジェクトのルートに移動し、.rvmrcファイル(touch .rvmrc)を作成して、編集します rvm use 2.0.0-p451@your_gemset(Rubyバージョンとgemset名)。このファイルを保存した後、次のコマンドを入力できます。

cd ../your_projectyour_projectディレクトリにいます)、. rvmrc内のスクリプトが実行されます。

RVMは、ruby-versionの使用を推奨しています。このコマンドを実行して、.rvmrcから.ruby-versionに切り替えることができます

rvm rvmrc to .ruby-version

これは、.ruby-version.ruby-gemsetという名前の2つのファイルを作成し、この行を追加します

ruby-2.0.0-p451 .ruby-version

your_gemset .ruby-gemset

必要に応じて、手動で試すことができます。


0

以下を使用してrvmをインストールします。

\curl -sSL https://get.rvm.io | bash -s stable --rails

Rubyの異なるバージョンをインストールします。

rvm install 1.8.7
rvm install 1.9.2

特定のrubyバージョンに切り替えます。たとえば、1.8.7:

rvm use 1.8.7

宝石を作成するには:

rvm gemset create project_gemset

そして、gemsetを使用するには:

rvm gemset use project_gemset
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.