ruby - RVM + Zsh "RVM is not a function, selecting rubies with ' rvm 使用.. .' will not work"

标签 ruby shell rvm zsh oh-my-zsh

首先我要说我不是命令行专家,所以我真的几乎不知道自己在做什么。

我无法让 RVM 和 oh-my-zsh 一起玩得很好。我尝试了几种不同的解决方案,其中一些是在 SO 上发布的,但我发现似乎没有任何解决方案可以解决问题。

最初,其他人在我的机器上安装了 RVM。后来我自己设置了 oh-my-zsh,记得当时遇到了很多麻烦。

除了这两行,我的.zhsrc 文件是完全默认的

export PATH=$HOME/bin:/usr/local/bin:/usr/local/rvm/bin:$PATH

#pretty sure this line does nothing, although I've seen this fix around
# several places. I noticed that I don't seem to have an .rvm file in my 
# home directory which would be an issue, but I have no idea how to 
# go about correcting this.
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

我将 /usr/local/rvm 添加到 Path 指令,因为 zsh 返回 zsh: rvm command not found 没有它。否则大多数 rvm 命令都可以工作,除了 rvm use 会抛出以下错误:

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

我已确保按照 RVM 的建议将 iTerm2 个人资料中的个人资料首选项设置为“登录 Shell”

iTerm2 Preferences - Login Shell

我已经尝试将这些首选项更改为“命令”选项并使用推荐的 /bin/bash/--login 作为命令,但是当发生这种情况时 zsh 似乎不再起作用。将命令更改为 /bin/zsh/--login 允许 zsh 再次工作,但没有解决问题,因为我在尝试运行 时仍然收到“RVM 不是函数”错误rvm 使用

RVM 中的默认 ruby​​ 设置为 2.0.0。我可以在我的主文件夹中运行 ruby -v 并获取显示默认版本的 ruby​​ 版本输出。

在 rails 项目上工作,如果 Gemfile 指定默认的 ruby​​ 2.0.0,我可以运行所有 rails 命令。但是在使用不同版本的项目中,我收到以下错误:

Your Ruby version is 2.0.0, but your Gemfile specified 1.9.3

然后我无法运行 rvm use 1.9.3,因为它返回上述错误。

如何使 zsh 与 RVM 兼容?

关于我的设置的一些信息:

  • Mac OSX 10.9.1(小牛)
  • iTerm2
  • Zsh 5.0.2 和 oh-my-zsh
  • RVM 1.5.1

最佳答案

对我来说,我只需要添加

source $HOME/.rvm/scripts/rvm

到我的 ~/.zshrc 并开始工作,在收到与此 SO 问题中相同的错误消息后。

关于ruby - RVM + Zsh "RVM is not a function, selecting rubies with ' rvm 使用.. .' will not work",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22773693/

相关文章:

ruby - 为什么我们没有一个 group_by!在 ruby​​ 可枚举模块中?

ruby-on-rails - 在 Rails 应用程序上安装 Bootstrap 3

macos - 如何从 OS X 10.6 的终端检测屏幕是否已锁定或屏幕保护程序是否处于事件状态?

node.js - npm 链接导致 javascript 语法错误

ruby - chruby 和 chgems 能代替 rvm 的 gemset 吗?

Ruby:如果 boolean true 从同一行返回 first_name(在 csv 文件中)

ruby-on-rails - Carrierwave:如何上传大文件?

linux - bash 信号陷阱将覆盖其 nohup 子命令的信号?

ruby 1.8.7 升级到 ruby 1.9.2

bash - Ubuntu终端: strange symbols instead of my username