rvm安装不工作:“RVM不是一个函数”

我刚刚安装了RVM,但无法使其工作。 我的.profile文件末尾有这样的行:

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

我试图运行source .profile和重新启动terminal,但仍然,当我运行rvm use 1.9.2我得到:

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

我的系统是Ubuntu 11.10。

您没有使用loginshell。

这里描述了启用login标志的过程,也可以在这里findloginshell的一些细节。

因此,您需要在Gnometerminal的设置中选中“Run as login shell”选项。 设置标志后需要打开新的terminal。

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


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

当运行ssh server ,然后交互式地使用服务器时,默认情况下使用的是loginshell,一切正常,但是对于ssh server "command"您没有使用loginshell,并且需要使用ssh server 'bash -lc "command"'运行它ssh server 'bash -lc "command"'

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

你需要运行以下

 $ source ~/.rvm/scripts/rvm 

然后运行这个

 $ type rvm | head -n 1 

如果你得到

 rvm is a function 

问题已经解决了。

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

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

我忘了提到你需要把这个代码放到你〜/ .bashrc或〜/ .zshrc文件中,你不需要再写这个代码。 干杯!

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

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

来自: ~/.bash_profile文件

要: ~/.bashrc文件

原因是这样的:每次你inputterminal时都会执行.bashrc ,而你每次login都会执行.bash_profile 。 这就是为什么解决scheme/bin/bash --login工作,但你必须这样做,每次你进入terminal。 这样你就被设置,直到你的下一个格式,你会忘记所有这一切:)

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

 source ~/.rvm/scripts/rvm 

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

最新的RVM(rvm 1.11.6(stable))在Ubuntu上停止工作(10.10 – 64位 – 书呆子或其他) – 我一直在

“RVM不是一个函数,select'rvm use …'的ruby将不起作用。”

之前,我收到了这个消息,但'rvm 1.9.3-p0@rails321'会工作。 现在,它不会工作 – 你根本不能改变gem。

没有任何工作,直到我find了这个 – 在/ /home/your-name/.bashrc的最后一行

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

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

 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. 

如上所述,只需在terminal中input' / bin / bash –login '(重新启动terminal后),然后键入命令'rvm use 1.9.3'(例如),它将开始使用相同的版本。

只要执行命令'ruby -v'来确认RVM正在使用Ruby的更新版本。

我也有一个新鲜的rvm安装这个问题,而不是在这里的答案修复它。 进入官方rvm网站,在基础部分,他们有这个命令:

#来自http://rvm.io/rvm/basics

源$(rvm 1.9.3做rvm env – path)

你应该改变你实际需要的ruby版本1.9.3,并且它会使rvm成为一个函数,而不pipeshell的types如何。

也许你可以尝试下面的内容:

  • 您的terminal – >
  • 编辑 – >
  • configuration文件首选项 – >
  • 标题和命令 – >
  • 检查“运行命令作为loginshell”
  • 完成

即使你接受了一个答案,我想build议另一种方式..〜/ .bashrc加载之前打开任何shell。 在那末尾添加那行,并且你不需要任何loginshell的东西

打开terminal,然后进入编辑>configuration文件首选项 ,然后转到选项卡“ 标题和命令 ”,并select“ 运行命令作为loginshell ”。

启动一个Bash,现在你可以直接从terminal上安装Gems而不使用sudo,而错误“ RVM不是一个函数,selectruby和'rvm use …'将不起作用 ”。

干杯。

以上所有答案都是有效的。 但是当我遇到同样的问题时,解决scheme如下:

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

     [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" source ~/.profile 
  • 最重要的一点是:确保在你的.zshrc文件中,每个导出到PATH后面都附加了:$PATH 。 即使按照以上步骤,我相信这也是我的问题的根源。

  • 发表这个我所有的RVM的问题不是一个function就走了。 如果仍然不起作用,请在这里给出一些错误追踪。 经过几个小时的努力来解决这个问题,我肯定我已经看到了所有相关的错误。

希望它有帮助。 干杯!

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

在Mac OSX 10.8 Mountain Lion上安装Ruby 1.9.3-p125的过程

  1. 您已经安装了最新的XCode(> = 4.3)和命令行Objective-C编译器“clang”。
  2. 您必须运行“bash”shell才能使此过程正常工作。
  3. 转到系统偏好设置
  4. 点击“用户和组”
  5. 点击面板左下angular的锁,input密码解锁。
  6. 在面板左侧窗格中的用户图标上单击“Ctrl-Click”,然后select“高级选项…”
  7. 将loginShell更改为“/ bin / bash”
  8. closures首选项
  9. 打开terminal窗口(按下命令+空格键并input“terminal”)
  10. 按照以下说明操作:

http://www.frederico-araujo.com/2011/07/30/installing-rails-on-os-x-lion-with-homebrew-rvm-and-mysql/

笔记:

  • 要安装ruby,你可能需要指定clang编译器:

    $ rvm install 1.9.3p125 –with-gcc = clang

  • 如果没有findRVM抱怨/ usr / local / rvm,你需要创build一个链接:

    $ ln -s / Users / [你的用户名] /。rvm / usr / local / rvm

 source ~/.bash_profile 

…应该做的伎俩…,可能需要注销并再次login。

如何从命令行重新加载.bash_profile?

«官方»说明在那里: https : //rvm.io/integration/gnome-terminal/

我得到了同样的错误,因为我曾经用apt-get命令安装了旧的rvm版本ruby-rvm。

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

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

我有同样的错误,但没有在这个网页上的解决scheme似乎工作。 对我来说,将rvm可执行文件添加到我的path就足够了:

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

Et瞧!

我有同样的问题,我做了这个在我的.bash_profile,它的工作。 source "$HOME/.rvm/scripts/rvm"

对于那些遇到同样问题的人,他们正在使用像我这样的lubuntu我跟随这个链接 :

你开始你的terminal

lxterminal -e“bash -il”

感谢@mpapsis指出我正确的方向

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

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