2012-09-07 273 views
30

嗨我一直在嘗試安裝Ruby gem bundle。收到此消息後,我按照gem install bundle的指示操作,但當我輸入bundle -v時仍不起作用。我還可以鍵入錯誤:沒有安裝Gem bundler,先運行`gem install bundler`

which bundle和接收

/Users/edmundmai/.rvm/bin/bundle 

所以它的存在!那爲什麼它不起作用呢!我沒有收到神祕的$ PATH有什麼問題嗎? (我是一個noob)。

這裏是我的.bash_profile:

PATH=$PATH:~/bin 
export PATH 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function 

這裏是我的.bashrc:

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

這裏是我的寶石ENV:

RubyGems Environment: 
- RUBYGEMS VERSION: 1.8.24 
- RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-darwin11.3.1] 
- INSTALLATION DIRECTORY: /Users/edmundmai/.rvm/gems/[email protected] 
- RUBY EXECUTABLE: /Users/edmundmai/.rvm/rubies/ruby-1.9.3-p194/bin/ruby 
- EXECUTABLE DIRECTORY: /Users/edmundmai/.rvm/gems/[email protected]/bin 
- RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-darwin-11 
- GEM PATHS: 
    - /Users/edmundmai/.rvm/gems/[email protected] 
    - /Users/edmundmai/.rvm/gems/[email protected] 
- GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - "install" => "--no-rdoc --no-ri" 
    - "update" => "--no-rdoc --no-ri" 
- REMOTE SOURCES: 
    - http://rubygems.org/ 

回聲$ PATH

/Users/edmundmai/.rvm/bin:/Users/edmundmai/.rvm/gems/[email protected]/bin:/Users/edmundmai/.rvm/gems/[email protected]/bin:/Users/edmundmai/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/edmundmai/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/edmundmai/bin:/Users/edmundmai/bin

UPDATE 所以在再次嘗試通過RoR教程之後,我重複了本章前面兩個終端窗口(讓我們稱之爲終端#1和終端#2)的一些步驟。終端#2仍然不起作用(命令行不在任何目錄中,只是默認目錄),而終端#1(在我的sample_app目錄中)起作用。我認爲rvm get head && rvm reload可能是關鍵?但這是否意味着我每次打開終端時都必須運行該程序?看看我的終端#爲前1命令後(我刪除了一些輸出,這樣它會更清楚我的輸入線爲):

Edmunds-MacBook-Pro:sample_app edmundmai$ bundle -v 
ERROR: Gem bundler is not installed, run `gem install bundler` first. 
Edmunds-MacBook-Pro:sample_app edmundmai$ gem install 
ERROR: While executing gem ... (Gem::CommandLineError) 
Please specify at least one gem name (e.g. gem build GEMNAME) 
Edmunds-MacBook-Pro:sample_app edmundmai$ rvm -v 


rvm 1.15.8 (master) by Wayne E. Seguin <[email protected]>, Michal Papis  <[email protected]> [https://rvm.io/] 

Edmunds-MacBook-Pro:sample_app edmundmai$ rspec spec/ 
No DRb server is running. Running in local process instead ... 
........ 

Finished in 0.36709 seconds 
8 examples, 0 failures 

Randomized with seed 59500 

Edmunds-MacBook-Pro:sample_app edmundmai$ subl . 
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle install --binstubs=./bundler_stubs 
Using rake (0.9.2.2) 
... 
... 
(**list of stuff) 
Using uglifier (1.2.3) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed. 
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle show bundler 
/Users/edmundmai/.rvm/gems/[email protected]/gems/bundler-1.2.0 

我非常清楚,以什麼$ PATH確實。如果你們需要更多的信息,隨時告訴我,我會提供。

+0

你已經嘗試過(使用RVM僅當出現問題)

'寶石安裝bundle'但你有沒有試過'gem install bundler'? – cjc343

+0

@ cjc343:'bundle' gem具有'bundler'作爲依賴,所以它具有相同的效果。 – jmdeldin

+0

@Edmund:你編輯它之後是否開始了一個新的終端或者源自你的bash_profile?你可以將'echo $ PATH'的輸出粘貼到你的shell中嗎?你是如何安裝RVM的?我使用它已經有一段時間了,但一般來說,這是一個複製/粘貼和運行設置。 – jmdeldin

回答

81

我認爲這是一個問題:您已將捆綁軟件安裝到特定的gemset,這就是爲什麼只有在您的應用程序目錄中(我假設有一個.rvmrc文件)纔可用。

您有幾種選擇:

  1. 安裝bundler到全球寶石。 rvm gemset use global && gem install bundler
  2. 如果您安裝了自制軟件,只需執行brew install ruby並完全避免使用rvm。 (還有rbenv和ry以替代RVM,但我只是用在所有我的應用程序1.9.3,所以自制是好的。)

僅供參考,$PATH是包含目錄列表一個shell環境變量保存可執行文件(例如,echo,ls,vim等)。這是炮彈的內在。

+1

感謝$ PATH參考。當我打開一個新的終端時,我剛剛嘗試了#1,當我鍵入'bundle -v'(儘管它在#1之後工作,但沒有嘗試自制軟件),它工作。你是最棒的,謝謝你的幫助! – Edmund

+1

@Edmund:很高興工作!現在困難的部分已經結束了,你可以回到學習Rails :)。 – jmdeldin

+0

將捆綁器設置爲全局gemset完美運行!非常感謝! – esnowrackley

52

有時只是因爲您不在登錄shell(使用屏幕?)而沒有正確採購rvm。 類型

 
    source ~/.rvm/scripts/rvm 

並使用任何捆綁命令。

+0

這幫了我,但我每次打開新的終端窗口時都必須運行此命令。我怎樣才能避免這種情況? – SET

+4

把這行放在你的〜/ .bashrc裏(如果它不在那裏的話)。 – hammady

4

以下行添加到~/.bashrc文件

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function 

然後重新加載文件:

$ source ~/.bashrc 
0

如果您正在使用RVM創建一個單獨的寶石,這是寶石的自包含包。

rvm use [email protected] --create --default 
  • myApplicationNameHere =更改爲您的應用程序名稱
  • 創造=創建一個寶石
  • 默認=意味着使用這個版本的紅寶石和寶石作爲默認

這裏是鏈接到rvm網站和相關部分https://rvm.io/gemsets/basics/

1

即使我有同樣的親blem,

在服務器RVM沒有被選爲default.So

rvm use 1.9.3 --default 

gem install bundler 

解決我的問題