【问题标题】:I'm getting "RVM is not a function" error on Mac OS X, and no posted solutions work我在 Mac OS X 上收到“RVM 不是函数”错误,并且没有发布的解决方案有效
【发布时间】:2013-01-12 01:20:54
【问题描述】:

我使用的是 Mac OS x 10.8.2(“Mountain Lion”),并且成功安装了 RVM 1.17.8 及其依赖项。我可以使用它来安装使用rvm install 1.9.2 的Ruby 版本,但是我无法执行rvm use <version> 而不会出现此错误:

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.

我在 ~/.bash_profile 中有以下内容,我设置为在终端窗口启动时使用 source ~/.bash_profile 运行:

export SVN_EDITOR=vim
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[ -r ~/.bashrc ] && source ~/.bashrc

我尝试运行source ~/.rvm/scripts/rvm,它运行时没有返回错误,但是当我尝试使用 RVM 在终端会话中设置 Ruby 版本时,我仍然收到“RVM 不是函数”错误。

我还尝试使用rvm implode 卸载和重新安装 RVM。我的想法已经用完了,我似乎无法在网上找到更多解决方案。帮忙?

【问题讨论】:

  • 您是否阅读并尝试了 RVM Help & Support 页面上的建议?
  • 我以为我已经尝试了所有发布的解决方案,但我在“.bash_profile 未在 OSX 上加载”部分下找到了一些东西,为我修复了它。似乎整个问题是我将终端设置为使用“默认登录 shell”打开,当我将其更改为使用 /usr/bash 打开时,上面的源 rvm 命令有效,而 rvm 现在被识别为一个函数。谢谢!!
  • 天哪,感谢您发表此评论!这正是我在终端设置中的问题。
  • 从终端中的 OS X 10.10 Yosemite 开始:首选项:常规:Shell 打开方式为:/bin/bash 为我工作。

标签: ruby rvm


【解决方案1】:

确保您的 shell 初始化文件设置正确:

rvm get head --auto-dotfiles

然后转到您的终端模拟器首选项并启用登录shell,有时它需要使用/bin/bash --login。 还要确保在更改设置后完全关闭终端并重新打开它。

【讨论】:

  • 这是最好的答案。在 ubuntu 盒子上为我工作。
  • 为了防止有人像我一样感到困惑:在 Mac OS X 10.10.5 上,“启用登录 shell”没有简单的复选框。但这非常简单:打开终端首选项并选择提供命令的“Shell open with:”选项。这是使用“/bin/bash --login”作为启动每个shell的命令的地方。
  • 即使执行上述命令后,错误消息也没有消失。最后,我将默认命令更改为zsh --login。然后错误就消失了。
  • @imechemi 我处于同样的位置,但你的解决方案也对我不起作用,你还尝试过其他什么吗?
【解决方案2】:

解决方案最终出现在 RVM Help & Support 页面上的“.bash_profile 未在 OSX 上加载”部分。似乎问题在于我将终端设置为使用“默认登录 shell”打开,当我将其更改为使用 Preferences/Setup 中的命令“/usr/bash”打开时,“source ~/.rvm/ scripts/rvm" 开始工作,现在 rvm 被识别为一个函数。

【讨论】:

  • 没有/usr/bash,你为什么一直这么说?
  • 在 Mac 10.11.2 上,将“终端:首选项:常规:Shell 打开方式:默认登录 shell”更改为“”Shell 打开方式:命令(完整路径):/bin/bash”。这和 @ 987654324@ 为我解决了问题。请务必退出并重新启动终端,对我来说,由新选项卡创建的新登录 shell 无法解决问题。
【解决方案3】:

寻找.profile,如果存在,删除它! .zshrc 的 loof,如果存在,请将其删除!现在,使用 vi 编辑您的 .bash_profile,添加这一行

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

现在,关闭所有控制台服务并再次打开,使用 $ rvm gemset use global

对我来说工作得很好!

【讨论】:

  • 删除 .zshrc 并创建 .bash_profile?你知道这些是针对不同的外壳的吗?
猜你喜欢
  • 1970-01-01
  • 2014-07-20
  • 2016-12-12
  • 2012-10-20
  • 2016-07-23
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多