web-dev-qa-db-ja.com

Rubyバージョンごとにすべてのgemを再インストールしますか?

Rbenvを使用してRuby 2.0.0をインストールし、システムのグローバルバージョンRubyバージョンに設定しました。2.0は1.9.3と互換性があるため、試してみましたRailsプロジェクトを起動しましたが、次のエラーが発生しました。rbenv rehash2.0をインストールした後

The `Rails' command exists in these Ruby versions:
  1.9.3-p327

これは、1.9.3でシステムにインストールしたすべてのgemを、2.0で使用する場合は、再インストールする必要があることを意味しますか?

24

はい。 Rbenv(およびRVM)には、インストールされているRubyのバージョンごとに個別の「gemhome」ディレクトリがあります。特定のディレクトリをシンボリックリンクして共有する方法があるかもしれませんが、これは問題を引き起こす可能性があります。特に、複数のバージョンでコンパイルおよび実行されないネイティブC拡張機能を含むgemの場合はそうです。

Gemfileをお持ちの場合、最も簡単なのはbundle install再びRuby 2.0の場合、多くのgemとRuby-2.0でコンパイルされたバージョンのネイティブgemの複製コピーを提供します。

17
Patrick

見られるように ここ

使用するRubyのバージョンごとにbundleを再インストールする必要があります。インストールしたRubyバージョンを参照してください:

rbenv whence bundle

現在のバージョンを参照してください。

rbenv version

不足している場合は、そのバージョンのバンドラーをインストールします。

gem install bundler
49
Adam Barthelson

これに対する別の解決策は、以前のバージョンから新しくインストールされたバージョンにgemをコピー(または再インストール)することです。その方法については、 この質問 で詳しく説明されています。これには2つのスクリプトがあります-1つは ローカルキャッシュからインストール 、1つは インターネットから再インストール (私の)。

0
Jim Meyer