2013-08-22 56 views
7

當我which ruby鍵入它總是返回ruby: aliased to bundled_ruby紅寶石:別名bundled_ruby

當我嘗試which bundled_ruby它返回:

bundled_ruby() { 
    _run-with-bundler ruby [email protected] 
} 

然後我嘗試which _run-with-bundler並返回:

_run-with-bundler() { 
    if _bundler-installed && _within-bundled-project 
    then 
     bundle exec [email protected] 
    else 
     [email protected] 
    fi 
} 

所有這些來自哪裏,我如何讓我的which ruby再次工作?

我使用OSX(v10.8.2),BREW,rbenv,紅寶石打造,zsh的

回答

4

這是rbenv 「神奇」 的一部分來處理幾個Ruby版本與幾個寶石版本。看看~/.rbenv/shims/ruby,IIRC腳本就是在那裏定義的。

如果你想禁用這個,只需unalias ruby:這將刪除生成的別名。

14

它可以來自oh-my-zshbundler plugin

它使用魔法避免以下命令之前,鍵入bundle execannotate berks cap capify cucumber foodcritic foreman guard jekyll kitchen knife middleman nanoc rackup rainbows rake rspec ruby shotgun spec spin spork strainer tailor taps thin thor unicorn unicorn_rails puma

您可以加載oh-my-zsh插件(見oh-my-zsh pull request #2195)之前在〜/ .zshrc定義UNBUNDLED_COMMANDS環境變量禁用此魔法的一些命令。

export UNBUNDLED_COMMANDS=ruby 
# for a list of commands 
export UNBUNDLED_COMMANDS=(ruby irb rake) 

或者你可以簡單地從你oh-my-zsh插件刪除bundler插件。

+0

非常有幫助,我也喜歡你注意到__可能來自哪裏,並且沒有給出明確的答案,因爲OP提供的關於他的環境的信息太少。非常感謝您的幫助。 –

+1

我的朋友在他的Mac上有這個問題,我的第一個想法是看看堆棧溢出,這導致我的答案,這指向我寫和解決問題的拉請求。 只是想我會分享:) –

+0

事實上,我也有同樣的問題,也看着堆棧溢出了。建議的答案不適用於我,因爲我使用的是「rvm」而不是「rbenv」。但它知道我在哪裏搜索,我發現zsh bundler插件是罪魁禍首。通過查看源代碼,我看到了'UNBUNDLED_COMMANDS'變量並找到了你的請求。一旦我解決了我的問題,我添加了這個答案。感謝您的工作:) – cbliard