2011-12-19 41 views
1

我再次提出分手,不幸的是我不知道爲什麼...安裝RVM後無論是Rails的服務器或Git的工作不

問題第一

使用已安裝RVM Git的過程中創建的.bash_profile不能被發現。 Rails服務器通過恢復紅寶石回1.8.7

加回從MAC端口的老路出口在.profile休息,我想我確定

/opt/local/bin: 
/opt/local/sbin: 

是在.bash_profile兩個目錄,這將使Git的工作,但打破了新的RVM紅寶石版本。

解決方案

所以這裏的解決方案: 我使用的是MAC端口的Git版本。這就是爲什麼它不會運行,除非Mac端口目錄是路徑的一部分。 Mac端口目錄在RVM之後採購時,Mac端口Ruby版本似乎優先於RVM版本。

這將打破

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function 
export PATH=/opt/local/bin:/opt/local/sbin:$PATH 

這將工作:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function 

感謝@three指着我在正確的方向:)

我如何打破它

Juggeling Ruby和Rails版本與我正在學習的兩個教程同步,RVM這個名字不斷彈出,作爲一個工具來更方便地管理這些版本。

我安裝了它,並得到它的工作

ruby -v 
$ ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0] 

rails -v 
$ Rails 3.1.3 

在這個過程中我.profile開始失敗了,但我認爲這是因爲這是RVM安裝過程中創建的.bash_profile的優先級。我期待着麻煩,但迄今爲止所有的工作都很順利,一切正常,包括rails服務器。

rails s 
=> Booting WEBrick 
=> Rails 3.1.3 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
[2011-12-19 10:16:15] INFO WEBrick 1.3.1 
[2011-12-19 10:16:15] INFO ruby 1.9.2 (2011-07-09) [x86_64-darwin10.8.0] 
[2011-12-19 10:16:15] INFO WEBrick::HTTPServer#start: pid=53018 port=3000 

然後我想承諾的Git,但突然不工作了

git 
-bash: git: command not found 

所以我比較了.profile.bash_profile發現MAC端口添加了一行代碼在.profile在最初安裝紅寶石,導軌和git(100%肯定我用MacPorts的所有三個)

## 
# Your previous /Users/username/.profile file was backed up as /Users/username/.profile.macports-saved_2011-10-19_at_08:48:41 
## 

# MacPorts Installer addition on 2011-10-19_at_08:48:41: adding an appropriate PATH variable for use with MacPorts. 
export PATH=/opt/local/bin:/opt/local/sbin:$PATH 
# Finished adapting your PATH environment variable for use with MacPorts. 

如果我查詢紅寶石版本與此設置搜索g我得到:

ruby -v 
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin10] 

所以我的新手猜測是我在安裝RVM的過程中打破了路徑變量。如果我將該行添加到.bash_profile git再次運行,但rails服務器不行。注意紅寶石版本missmatch:

rails s 
/Users/username/.rvm/gems/ruby-1.9.2-p290/gems/sqlite3-1.3.5/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault 
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin10] 

Abort trap 

使用Mac端口的路徑出口時,我的$ PATH的內容是:

echo $PATH 
/opt/local/bin: 
/opt/local/sbin: 
/Users/username/.rvm/gems/ruby-1.9.2-p290/bin: 
/Users/username/.rvm/gems/[email protected]/bin: 
/Users/username/.rvm/rubies/ruby-1.9.2-p290/bin: 
/Users/username/.rvm/bin: 
/usr/bin: 
/bin: 
/usr/sbin: 
/sbin: 
/usr/local/bin: 
/usr/X11/bin: 

在使用.bash_profile另一方面是因爲這是$ PATH內容:

echo $PATH 
/Users/username/.rvm/gems/ruby-1.9.2-p290/bin: 
/Users/username/.rvm/gems/[email protected]/bin: 
/Users/username/.rvm/rubies/ruby-1.9.2-p290/bin: 
/Users/username/.rvm/bin: 
/usr/bin: 
/bin: 
/usr/sbin: 
/sbin: 
/usr/local/bin: 
/usr/X11/bin: 

看起來非常相似,除了這兩個目錄:

/opt/local/bin: 
/opt/local/sbin: 

所以我的猜測是,那是它打破的地方......但我不知道該怎麼辦。

我還是太新鮮了這一切的發展,蘋果電腦,UNIX,紅寶石,Rails的東西:(

任何幫助是極大的讚賞。

感謝 TIM

+0

你有沒有解決你的問題?無法確定從您的編輯 – 2011-12-19 11:40:02

回答

2

把RVM導出路徑爲MacPorts的線後,使紅寶石的RVM二進制文件將採取precendence

export PATH=/opt/local/bin:/opt/local/sbin:$PATH 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function 

還要考慮使用自制而不是macports,這是維護* nix工具非常流暢的版本。

+0

我試過,但不幸的是它並沒有解決問題。錯誤的紅寶石版本(1.8.7而不是1.9.2)仍然是源,當mac端口出口在'.profile' – TIM 2011-12-19 09:59:52

+1

你重新加載rvm? 'rvm reload' – three 2011-12-19 10:03:41

+0

我認爲問題在於這個版本的git存在於'/ opt/local'/bin/git – TIM 2011-12-19 10:11:32

0

插入該行對.bash_profile:

source "$HOME/.profile" 

之前RVM添加的內容。