2013-08-16 57 views
77

以上第一次不工作,第二次工作。使用rvm 2.0.0時出現「Warning!PATH設置不正確」 - 默認

嘗試爲任何新的shell窗口設置ruby版本爲2.0.0。

$ rvm use 2.0.0 --default 

Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/ 
bin' is not at first place, 
     usually this is caused by shell initialization files - check them for ' 
PATH=...' entries, 
     it might also help to re-add RVM to your dotfiles: 'rvm get stable --au 
to-dotfiles', 
     to fix temporarily in this shell session run: 'rvm use ruby-1.9.3-p125' 
. 
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247 

然後做同樣的

$ rvm use 2.0.0 --default 

現在沒有給出錯誤,即

$ rvm use 2.0.0 --default 
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247 
durrantm.../durrantm$ 

,但新的窗口仍然給我紅寶石1.9.3,2.0.0不

.bashrc文件中有:

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

我.bash_profile文件有:

source ~/.profile 
case $- in *i*) . ~/.bashrc;; esac 

嘗試

rvm get stable 

似乎工作,但在很多綠色輸出結束顯示:

Could not update RVM, get some help at #rvm IRC channel at freenode servers. 

一個新的終端窗口與rvm list rubies表明這一點:

$ rvm list rubies 
Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/bin' is not at first place, 
     usually this is caused by shell initialization files - check them for 'PATH=...' entries, 
     it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles', 
     to fix temporarily in this shell session run: 'rvm use ruby-1.9.3-p125'. 

rvm rubies 

=> ruby-1.9.3-p125 [ x86_64 ] 
    ruby-1.9.3-p194 [ x86_64 ] 
* ruby-2.0.0-p247 [ x86_64 ] 

# => - current 
# =* - current && default 
# * - default 

回答

142

答案是把這個:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 
# Load RVM into a shell session *as a function* 

**在底部**(最後一行 - 重要!)我的.bashrc文件。我在我的.bash_profile文件中(我在Ubuntu上),只有部分工作導致了令人困惑的錯誤。

+1

似乎違反直覺的,如果RVM要在頂部移至底部鏈條? – reneruiz

+8

rvm需要位於文件的底部,以防重新定義路徑中的其他行。[ba | z] shrc。對於Homebrew,'export PATH =「/ usr/local/bin:/ usr/local/sbin:$ PATH」'可能是一種常見的與rvm衝突的問題。 – TimeEmit

+4

我把它放在我的.bash_profile的底部,因爲我重新定義了幾次路徑。這也有效。 –

5

我對此有一個後續問題(希望我可以簡單地添加評論 - 但我沒有足夠的積分)。我有這個相同的問題 - 當我遵循建議使用--auto-dotfiles的rvm腳本時,我遇到了麻煩,因爲它以某種方式刪除了我的.bashrc_profile文件。

無論如何,我最終來到了上面列出的相同的答案,把這一行放在.bashrc文件的底部。 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

你碰巧發現爲什麼工作方式是這樣的,而不是在.bashrc文件的中間行? Unix有沒有清楚的說明Unix加載環境變量的方式,使得RVM能夠在一個實例中工作而不是另一個工作嗎?

+0

不,它的工作,我搬了:)更多有趣的魚炸魚:) –

19

我試過邁克爾杜蘭特的解決方案,它不適合我。但我跑了rvm get stable --auto-dotfiles,它開始按需要工作。

希望它可以幫助

+0

這在小牛隊工作,不得不重新啓動終端來完成修復。 –

+0

在帶有iTerm2 3.0.15的Mac 10.12.3中,fish 2.5.0和'config.fish'文件底部的'rvm default'。保持終端窗口打開時,命令'rvm reset'不起作用。這個命令行得通。我的輸出:https://pastebin.com/1jUCSGnP – Pysis

+0

啊,可能當我運行命令時,他們使用'bash'解釋器,我也應該檢查這些配置文件以及.. – Pysis

4

只是增加我的經驗:如果你使用.bash_profile,檢查是否.bashrc不干擾。在這種情況下,通過.bash_profile可以消除.bashrc以支持單個Bash配置。

+1

這解決了我的問題。我甚至不知道.bashrc如何到達那裏,因爲我所有的配置都在.bash_profile中。 rvm是否在bashrc中安裝了某些東西?我會這麼認爲,考慮到bashrc只有一行,它是與rvm。 – kevindeleon

+1

天知道什麼樣的命令行安裝程序將其推入。它們往往會污染它:( –

+2

這不是一個通用的解決方案,FWIW。'.bashrc'是爲每個嵌套交互式shell執行的;'.bash_profile'只在第一個進入的bash shell執行,即登錄shell。通常應該在'.bash_profile'中設置,而函數,別名等(在普通的繼承環境中不傳輸的東西)應該在'.bashrc'中設置。 –

6

這不是對問題的回答,而是大多數評論者/響應者詢問的相關問題 - 爲什麼需要將rvm行放在shell rc文件的底部?

答案很簡單。

  1. 其上裝載的RVM代碼放RVM紅寶石二進制目錄在的$PATH「前」,並
  2. .bashrc(或等同物作爲默認殼)被讀出,並從頂部解釋線由行到底部。

所以,想象一下以下情形:

$ echo $PATH 
    /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin 

$ [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 
    /Users/sankalp/.rvm/gems/ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/[email protected]/bin:/Users/sankalp/.rvm/rubies/ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin 

$ export PATH=<something>:$PATH 
$ echo $PATH 
    <something>:/Users/sankalp/.rvm/gems/ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/[email protected]/bin:/Users/sankalp/.rvm/rubies/ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin 

顯然,如果事情是存在於殼init文件的RVM線後,使以$ PATH任何改變,更具體地說,如果前添加目錄$PATH,那麼這些更改會將由rvm添加的目錄從第一個位置向下推送。 RVM在調用時會發現它的ruby二進制目錄是而不是,在$PATH和BAM!你會得到警告:)。

我希望說清楚。

119

在我卸載RVM與

rvm implode 

我被困然後再重新安裝RVM後收到同樣的錯誤消息。 通過wayne seguin的git hub頁面查看之後。他在他的頁面上列出了工具並推薦使用

rvm reset 

安裝後。這解決了我的錯誤信息。無需PATH編輯。

+9

檢查並重新檢查我的'〜/。 bashrc','〜/ .bash_profile',運行'rvm get stable --auto-dotfiles',重新檢查'〜/ .bashrc','〜/ .bash_profile'和'〜/ .profile'多次。這個答案終於解決了!Ran:'rvm reset'並且它擺脫了警告!(恕我直言...... RVM對於在路徑中的第一個太過挑剔...如果我在我的路徑中首先設置其他東西,我知道我在做什麼) – TrinitronX

+6

:tu:'rvm reset' – JBird

+1

這對我也不起作用 – newUserNameHere

2

我發現這個命令非常有用。 它解決了我的情況。所以,如果有人有同樣的問題,試試這個: rvm get stable --auto-dotfiles

2

我清理了,在我的.zshrc了.rvm它從我的PATH =樣樣在行

這解決了該問題對我來說,其他人在這裏回答(採購rvm腳本,或者使用自動點陣文件獲得穩定)沒有。

5

我面臨同樣的問題。我發現,在.bashrc中文件

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting 
export PATH=$HOME/local/bin:$PATH 

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting 

多個條目RVM。 我評論了一個條目,它的工作正常。

#export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting 
#export PATH=$HOME/local/bin:$PATH 

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting 
19

也許不是解決它的最好方法,但我在.zshrc的鈕加入這一行(它會在.bashrc中工作太!)

export PATH="$GEM_HOME/bin:$PATH" 
+0

這是一個更清潔的解決方案,IMO,更新了RVM。 –

+0

我不同意,我認爲這是解決這個問題的最好方法:)我不得不把它作爲我的.bash_profile的最後一行,因爲它最後運行並且有其他路徑聲明。 – applejack42

+0

這確實是解決此問題的最佳解決方案之一。用了近3個小時,終於放棄了:你是那個男人。 :) – LearningROR

1

rvm install ruby-head 修正了問題對我來說 - 很費時間,但做到了。不知道這是否會對我的bash文件進行任何未更新的更新。

-2

我修正了這個問題。 TRY USE命令是這樣的:

rvm use 2.0.0-p353 

ADD -p353或其他您版本詳細線路末端

+3

這隻能解決當前shell會話的問題,所以它不完全是最好的答案。 – IIllIIll

0

我最終消除~/.profile~/.bashrc~/.zshrc

基本上我只在我的Mac上保留~/.bash_profile。它的工作原理。

我想在我的情況,主要有:

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

,而那些重複設置的困惑rvm

相關問題