2012-03-13 121 views
16

使用ubuntu 10.04,rvm。起初,我已經用rvm,gem rails安裝了ruby 1.9.2並生成了一些新項目併成功啓動了它。一切工作正常。但是,改變到另一個項目,執行捆綁安裝命令(輸出看起來OK),並啓動軌道服務器後 - 錯誤發生時:找不到寶石欄 - 寶石:: 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 /箱)

/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 

我會任何幫助

+4

如果你嘗試'bundle exec rails s',會發生什麼? – Batkins 2012-03-13 14:32:15

+0

嗯有另一個錯誤,可能與其他寶石。看起來你的解決方案是正確的。你能告訴我,爲什麼我不能只輸入rails? – zachar 2012-03-13 14:37:57

+1

'./script/rails s'使用Gemfile – shingara 2012-03-13 14:50:44

回答

17

請將使用命令bundle install安裝你的寶石斷GEMFILE的,它將安裝寶石到你的系統默認位置的寶石,如the bundler docs here中所述。之後,您可以使用捆綁軟件bundle exec命令在軟件包上下文中執行命令,即as outlined in the docs here。這將確保您執行使用bundle install安裝的gem版本。

如果你看一下homepage for bundler,它提供了文檔的概述,它規定如下:

在某些情況下,運行無束的exec可執行文件可以正常工作,如果可執行恰好被安裝在你的系統並沒有吸引任何與你的軟件包衝突的寶石。

但是,這是不可靠的,是相當大的痛苦的來源。即使它看起來有效,它可能在未來或另一臺機器上都不起作用。

我猜你在控制檯運行gem which rails,然後在您的控制檯上運行bundle show rails,默認安裝導軌的安裝爲您的系統不同於一個安裝捆綁軟件。

你說你使用rvm爲你的rubygem管理。我想你可能沒有正確配置它。嘗試在控制檯中執行rvm notes命令,以確保您已解決了在操作系統上安裝所需的所有/推薦步驟。您希望確保rvm的可執行文件是理想情況下運行echo $PATH時包含在路徑中的第一件事。這將確保爲rvm安裝的寶石將在您嘗試執行時執行,並且不會在前綴bundle exec前面執行。如果rvm notes沒有提供完成該提示所需的提示,請仔細閱讀docs for installation on the RVM website

27

對於我剛剛安裝的捆綁軟件。這使得一切都重新開始。

gem install bundler --no-ri --no-rdoc 
0

我想下面的命令將工作

gem pristine rails 
5

您可以$ rvm use --default 2.4.0紅寶石之間進行切換版本例如

但對於你的問題試試這個:

  1. $ gem install bundler

  2. $ gem install rails

希望它能幫助!