2012-03-13 19 views
16

ubuntu 10.04、rvmを使用しています。最初は、rvmとgem railsを使って1.9.2のrubyをインストールし、いくつかの新しいプロジェクトを作り、それをうまく開始しました。すべてがうまくいきました。しかし、別のプロジェクトへの変更の束を(出力はOKに見える)installコマンドを実行し、レール・サーバを起動した後に - エラーが発生します。gemのレールが見つかりません - Gem :: GemNotFoundException

レールの

/home/jacek/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/site_ruby/1.9.1/rubygems.rb:316:in `bin_path': can't find gem rails ([">= 0"]) with executable rails (Gem::GemNotFoundException) 
from /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin/rails:19:in `<main>' 

宝石のリストは

*** LOCAL GEMS *** 
rails (3.2.2) 

宝石のenv

レール
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.8.18 
    - RUBY VERSION: 1.9.2 (2012-02-14 patchlevel 318) [i686-linux] 
    - INSTALLATION DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318 
    - RUBY EXECUTABLE: /home/jacek/.rvm/rubies/ruby-1.9.2-p318/bin/ruby 
    - EXECUTABLE DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86-linux 
    - GEM PATHS: 
    - /home/jacek/.rvm/gems/ruby-1.9.2-p318 
    - /home/jacek/.rvm/gems/[email protected] 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

マイパス(実行可能ディレクトリ:/home/jacek/.rvm/gems/ruby-1.9.2- P318/bin)に

/home/jacek/.rvm/gems/ruby-1.9.2-p318/bin:/home/jacek/.rvm/gems/[email protected]/bin:/home/jacek/.rvm/rubies/ruby-1.9.2-p318/bin:/home/jacek/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

私はあなたがGEMFILEのオフに、あなたの宝石をインストールするには、コマンドbundle installを使用している場合、それは宝石のためにあなたのデフォルトのシステムの場所に宝石をインストールします任意の助け

+4

'bundle exec rails s'を実行するとどうなりますか? – Batkins

+0

ええ、おそらく他の宝石と別のエラーがあります。あなたの解決策が正しいように見えます。あなたは私に教えてもらえますか?レールだけを入力できないのはなぜですか? – zachar

+1

'./script/rails s'はGemfileを使用します – shingara

答えて

17

のための感謝されます、 the bundler docs hereに概説されている。その後、バンドルbundle execコマンドを使用して、バンドルのコンテキストでコマンドを実行することができます(as outlined in the docs here)。これにより、bundle installを使用してインストールしたgemのバージョンが確実に実行されます。いくつかのケースでは

、仕事もバンドルexecを使用しない実行ファイルを実行し、実行ファイルがインストールされるように発生した場合:

あなたがドキュメントの概要を説明しhomepage for bundler、見れば、それは次のように述べてシステムとバンドルに矛盾する宝石を引っ張ってはいけません。

しかし、これは信頼性が低く、かなりの痛みの原因です。それが動作するように見えても、将来、または別のマシンで動作しない可能性があります。

私はあなたがあなたのコンソールでgem which railsを実行し、自分のコンソールでbundle show railsを実行することを推測している、お使いのシステムのデフォルトのインストールレールのインストールは、あなたのバンドルのインストール1とは異なります。

rubygemの管理にはrvmを使用しているとします。私はあなたが正しく構成されていないかもしれないと思っています。コンソールにrvm notesコマンドを実行しようとすると、お使いのOSにインストールするために必要な/推奨されているすべての手順が完了していることを確認してください。 echo $PATHを理想的に実行するときに、rvmの実行ファイルがパスに含まれる最初のものであることを確認する必要があります。これにより、rvm用にインストールされた宝石は、接頭辞bundle execなしで実行しようとすると実行されるものになります。 rvm notesでそれを達成するために必要なヒントが得られない場合は、docs for installation on the RVM websiteを慎重に検討してみてください。

27

私にとっては、単にbundlerをインストールしました。これにより、すべてが再び機能します。私は、コマンドの下だと思う

gem install bundler --no-ri --no-rdoc 
5

に動作しますあなたは一例

のためにしかし、あなたの問題のために$ rvm use --default 2.4.0とRubyの間のバージョンを切り替えることができ、これを試してみてください。

  1. $ gem install bundler

  2. $ gem install rails

それが役に立てば幸い!

関連する問題