解釋和PATH
哦。你沒有在你的rvm ruby中安裝rails,但是你在你的系統中使用ruby。
個別寶石,如rails
可以有一個bin
目錄,該目錄將包含可執行助手腳本。您的系統默認rubygems正在將系統/ usr/bin/dir中的符號鏈接插入這些助手可執行文件的寶石文件夾bin
文件夾中。
RVM提供了類似的功能,除了不會污染系統/ usr/bin目錄,它只是將的~/.rvm/gems/#{rvm_gemset_string}/bin
文件夾附加到PATH環境變量中。
導入系統的RubyGems列表進入新RVM紅寶石寶石目錄
RVM默認情況下將不會從你的系統安裝紅寶石導入你的寶石到您的RVM紅寶石安裝。它使整個ruby系統(包括rubygems(寶石'rubygems')和rubygems的寶石列表)完整整潔。當你rvm install 1.9.2
這就像你已經做了一個全新的安裝使用紅寶石的一切。
如果您想獲得您以前使用到您的首選RVM紅寶石所有系統紅寶石寶石,試試這個:
rvm use system
rvm gemset export system.gems
rvm use 1.9.2
rvm gemset import system.gems
#You'll now have all your system gems reinstalled to your new ruby version
原來的答案/編輯從@Telemachus
嘗試源RVM線移動到你的~/.bash_profile
或~/.bashrc
(無論你擁有它)的結尾:
'[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function'
。
bash: /usr/bin/rails: /usr/bin/ruby1.8: bad interpreter: No such file ...
| | ^--------------------------------\
^ Bash, not rvm; ^/usr/bin/rails, not ~/.rvm/gems/*/bin/rails; |
Some ruby leftover from a previous install in the os
中安裝了/usr/bin
軌道,這可能是在你的bash echo $PATH
變量RVM紅寶石bin路徑之前,所以它的查找軌安裝系統(在/ usr/bin中/軌,Ruby腳本),這將啓動像這樣:
#! /usr/bin/ruby18
你得讓衝突阻止事情發生,最好的一切可能的方式是確保RVM的bin目錄是在你的PATH的開頭。這發生在您安裝rvm時添加到您的~/.bash_profile
的#Load rvm environment
腳本中。如果您將rvm作爲系統庫安裝,而不僅僅是爲您的用戶安裝,則會有所不同。
如果您遇到這種情況,請諮詢@Telemachus。
然後,您需要確保您已獲得安裝在新rvm ruby中的rails gem,如上所述。
驗收測試:
你會發現,當你做了rvm use 1.9.2
,然後which ruby
將返回類似~/.rvm/rubies/1.9.2/bin/ruby
,並which rails
應該返回類似~/.rvm/gems/*/bin/rails
。
通過編輯將'rvm info'的輸出添加到您的問題中。 – 2011-06-17 02:01:29
'rvm'不會自動安裝'rails'。在安裝特定的Ruby解釋器後,您需要爲該解釋器安裝任何您想要的gem(包括'rails')。問題似乎是您安裝了1.9.2並將其設置爲默認值,但從未爲該解釋器安裝「rails」。 – Telemachus 2011-06-17 15:57:24