关于ruby:rvm安装不起作用:“RVM不是函数”

rvm installation not working: “RVM is not a function”

我刚安装了RVM,但不能正常工作。我在我的.profile文件的末尾有这样一行:

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

我试着运行source .profile和重启终端,但当我运行rvm use 1.9.2时,我得到:

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

我的系统是Ubuntu 11.10。


你需要运行以下程序

1
$ source ~/.rvm/scripts/rvm

然后运行这个

1
$ type rvm | head -n 1

如果你得到

1
rvm is a function

问题解决了。

您还需要运行user$ rvm requirements来查看操作系统的依赖性需求。

来源:https://rvm.io/rvm/install/

我忘记提到您需要将此代码放入~/.bashrc或~/.zshrc文件中,您将不需要再编写此代码。干杯!


您没有使用登录shell。

这里描述了启用登录标志的过程,这里还可以找到有关登录shell的一些详细信息。

因此,您需要检查gnome终端设置中的"作为登录shell运行"选项。设置标志后,需要打开新的终端。

有时需要将命令设置为/bin/bash --login

对于远程连接,重要的是要了解运行交互式ssh会话和执行单个命令之间的区别。

在运行ssh server然后以交互方式与服务器一起工作时,默认情况下使用的是登录shell,一切正常,但对于ssh server"command"而言,您不使用登录shell,需要使用ssh server 'bash -lc"command"'运行它。

任何远程调用都可能存在与使用ssh执行单个命令相同的问题。


要永久解决此问题,只需剪切/粘贴以下行:

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

发件人:~/.bash_profile文件

收件人:~/.bashrc文件

这样做的原因是,每次进入终端时执行.bashrc,每次登录时执行.bash_profile。这就是解决方案/bin/bash --login工作的原因,但每次进入终端时都必须这样做。这样,您将一直设置到下一个格式,到那时您将忘记所有这些内容:)


我也面临这个问题。最后我在终端上执行了这一行。

1
source ~/.rvm/scripts/rvm

问题已解决。因为这一行将使RVM实例在特定的时间内成为一个函数。


最新的RVM(RVM 1.11.6(稳定版))停止了Ubuntu(10.10-64位-nerdy-gnat或其他东西)的工作-我不断地得到

"RVM不是一个函数,选择带有"RVM USE…"的红宝石将不起作用。"

之前,我收到了消息,但是"rvm 1.9.3-p0@rails321"可以工作。现在,它不起作用了-你根本不能换宝石。

在我找到这个之前,什么都没用——把这句话当作江户的最后一句话。

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


正如您所说,显示的错误可能是以下错误。

1
2
3
4
5
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.

如前所述,只需在终端中键入"/bin/bash--login"(重新启动终端后),然后键入com和"rvm use 1.9.3"(例如),它将开始使用相同的版本。

只需执行命令'ruby-v'以确认RVM使用的是Ruby的更新版本。


我在一个新的RVM安装上也遇到了这个问题,这里的答案都没有解决。进入官方的RVM站点,在基础部分,他们有以下命令:

# from http://rvm.io/rvm/basics

source $(rvm 1.9.3 do rvm env --path)

您应该为实际需要的Ruby版本更改1.9.3,它将使rvm成为一个函数,而不管shell类型如何。


也许你可以试试下面的:

  • 您的终端->
  • 编辑>
  • 配置文件首选项->
  • 标题和命令->
  • 检查"作为登录shell运行命令"
  • 多恩


运行bash --login,然后运行rvm use 2.0.0


即使你接受了一个答案,我还是想建议另一种方法……~/.bashrc在打开任何shell之前加载。在末尾加上这一行,你就不需要任何登录外壳了。


打开终端,然后转到编辑>配置文件首选项,然后转到选项卡"标题和命令",并选中"作为登录shell运行命令"。

启动一个bash,现在您可以直接从终端安装gems,而不使用sudo,错误"rvm不是一个函数,选择带有"rvm use…"的rubies将不起作用。"将被消除。

干杯。


以上答案均有效。但当我面临同样的问题时,解决方法如下:

  • 更新ZSH。(由于某种原因,试图直接更新DIN不工作。所以从这里卸载并重新安装了更新版本)
  • 使用sudo chsh -s $(which zsh) $USER将默认shell设置为zsh(即,如果您喜欢zsh)。
  • 在安装了最新的RVM(可能使用官方RVM站点的curl)之后,确保以下代码位于.zshrc的底部

    1
    2
    [[ -s"$HOME/.rvm/scripts/rvm" ]] && ."$HOME/.rvm/scripts/rvm"
    source ~/.profile
  • 最重要的一点:确保在您的.zshrc文件中,每个到PATH的导出都附加了:$PATH文件。我认为这是我的问题的根源,即使在遵循上述步骤之后。

  • 在这之后,我所有关于RVM不是一个函数的问题都消失了。如果它仍然不起作用,请在这里进行一些错误跟踪。经过几个小时的努力,我确信我已经看到了所有相关的错误。

希望它有帮助。干杯!


在Mac OSX 10.8 Mountain Lion上安装Ruby 1.9.3-P125的步骤

  • 您已经安装了最新的xcode(>=4.3)和命令行objective-c编译器"clang"。
  • 必须运行"bash"shell,此过程才能工作。
  • 转到系统首选项
  • 单击"用户和组"
  • 单击面板左下角的锁并输入密码以将其解锁。
  • 在面板左窗格中的用户图标上单击"ctrl",然后选择"高级选项…"
  • 将登录shell更改为"/bin/bash"
  • 关闭首选项
  • 打开终端窗口(按命令+空格键并键入"终端")。
  • 请遵循以下说明:
  • http://www.frederico-araujo.com/2011/07/30/installing-rails-on-os-x-lion-with-homebrew-rvm-and-mysql/

    笔记:

    • 要安装Ruby,您可能需要指定clang编译器:

      $rvm安装1.9.3p125——GCC=clang

    • 如果未找到rvm gripes about/usr/local/rvm,则需要创建一个链接:

      $ln-s/user s/[您的用户名]/.rvm/usr/local/rvm


    1
    source ~/.bash_profile

    …应该做的技巧…,可能需要注销和再次登录。

    如何从命令行重新加载.bash_概要文件?


    ?官员?说明如下:https://rvm.io/integration/gnome-terminal/


    我通过将这一行添加到.bash_profile来修复它:

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

    我有同样的问题,我在我的.bash_个人资料中做了这个,它起作用了。source"$HOME/.rvm/scripts/rvm"


    对于那些有相同问题的人,他们像我一样使用lubuntu,我遵循以下链接:

    你用

    lxterminal -e"bash -il"

    感谢@mpapsis为我指明了正确的方向


    我也有同样的错误,因为我曾经用apt-get命令安装过旧的RVM版本RubyRVM。

    我通过删除脚本行来配置.bashrc文件中的旧rvm来解决这个问题。

    检查旧的rvm配置脚本,然后运行source.profile


    我也有同样的错误,但这一页上的解决方案似乎都不起作用。对我来说,将rvm可执行文件添加到我的路径中就足够了:

    1
    PATH=$PATH:/usr/local/rvm/bin/

    瞧!