【问题标题】:ruby: aliased to bundled_rubyruby:别名为 bundled_ruby
【发布时间】:2013-08-24 16:24:15
【问题描述】:

当我输入which ruby 时,它总是返回ruby: aliased to bundled_ruby

当我尝试which bundled_ruby 时,它会返回:

bundled_ruby () {
    _run-with-bundler ruby $@
}

然后我尝试which _run-with-bundler 并返回:

_run-with-bundler () {
    if _bundler-installed && _within-bundled-project
    then
        bundle exec $@
    else
        $@
    fi
}

这一切从何而来?如何让我的which ruby 再次工作?

我正在使用 OSX (v10.8.2)、brew、rbenv、ruby-build、zsh

【问题讨论】:

    标签: ruby rbenv


    【解决方案1】:

    它可以来自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 插件之前,您可以通过在 ~/.zshrc 中定义UNBUNDLED_COMMANDS 环境变量来禁用某些命令的这种魔法(请参阅oh-my-zsh pull request #2195)。

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

    或者您可以简单地从您的oh-my-zsh 插件中删除bundler 插件。

    【讨论】:

    • 非常有帮助,我也希望您注意它可能来自哪里并且没有给出明确的答案,因为 OP 提供的有关他的环境的信息太少。非常感谢您的帮助。
    • 我的朋友在他的 Mac 上遇到了这个问题,我的第一个想法是查看 Stack Overflow,这让我得到了你的答案,这指向了我写的一个拉取请求并解决了这个问题。只是想我会分享:)
    • 事实上,我也遇到了同样的问题,也查看了 Stack Overflow。建议的答案不适用于我,因为我使用的是rvm 而不是rbenv。但它让我知道了在哪里搜索,我发现 zsh bundler 插件是罪魁祸首。通过查看源代码,我看到了UNBUNDLED_COMMANDS 变量并找到了您的拉取请求。一旦我解决了我的问题,我就添加了这个答案。感谢您的工作:)
    【解决方案2】:

    这是rbenv "magic" 的一部分,用于处理带有多个 gem 版本的多个 ruby​​ 版本。看看~/.rbenv/shims/ruby,IIRC 那里定义了脚本。

    如果你想禁用它,只需unalias ruby:这会删除生成的别名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多