rvm安装失败:“rvm不是一个函数”;

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

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

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

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

我的系统是Ubuntu 11.10。

191318 次浏览

您没有使用登录shell。

启用登录标志的过程在在这里中描述,关于登录shell的一些详细信息也可以在在这里中找到。

因此,您需要检查Gnome终端设置中的选项“以登录shell运行”。设置标志后,需要打开新的终端。

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


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

在运行ssh server并与服务器交互工作时,默认情况下你使用登录shell,这一切都很好,但对于ssh server "command",你不使用登录shell,需要用ssh server 'bash -lc "command"'运行它。

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

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

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

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

尽管你接受了一个答案,我还是想建议另一种方法。~ /。Bashrc在任何shell被打开之前被加载。在最后加上这一行,你不需要任何login shell的东西

最新的RVM (RVM 1.11.6(稳定))在Ubuntu上停止工作(10.10 - 64位-讨厌的小虫子或其他什么)-我一直在得到

“RVM不是一个函数,用RVM use选择红宝石…’是行不通的。”

之前,我得到了消息,但是'rvm 1.9.3-p0@rails321'可以工作。现在,它不起作用了——你根本不能改变gemset。

没有工作,直到我发现这个-使此为/home/your-name/.bashrc中的最后一行

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

您需要运行以下命令

$ source ~/.rvm/scripts/rvm

然后运行这个

$ type rvm | head -n 1

如果你得到

rvm is a function

问题解决了。

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

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

我忘记提到你需要把这个代码到你~/。Bashrc或~/。ZSHRC文件,您将不需要再次编写此代码。干杯!

在Mac OSX 10.8 Mountain Lion操作系统上安装Ruby 1.9.3-p125

    你已经安装了最新的XCode(>= 4.3)和Objective-C命令行 李编译器“叮当声”。< / >
  1. 您必须运行“bash”外壳才能使此过程工作。
  2. 进入系统首选项
  3. 点击“用户&组”
  4. 点击面板左下角的锁,输入密码解锁。
  5. 在面板左侧窗格的用户图标上“Ctrl-Click”,并选择“高级选项…”
  6. 修改登录Shell为“/bin/bash”
  7. 关闭首选项
  8. 打开终端窗口(按命令+空格键,输入“终端”)
  9. 按照以下说明操作:

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

  • 如果RVM抱怨/usr/local/rvm不存在,你需要创建一个链接:

    $ ln -s /Users/[用户名]/。rvm /usr/local/rvm < / p >

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

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——登录'(重启终端后),然后键入命令'rvm use 1.9.3'(例如),它将开始使用相同的版本。

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

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

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

来自:~/.bash_profile文件

到:~/.bashrc文件

这样做的原因是每次进入终端时执行.bashrc,每次登录时执行.bash_profile。这就是为什么解决方案/bin/bash --login工作,但你必须这样做,每次你进入终端。这样你就设置好了,直到你的下一个格式,你会忘记所有这些by than:)

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

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

果不其然!

也许你可以试试下面的方法:

  • 你的终端->
  • 编辑- >
  • 配置文件首选项->
  • 标题和命令-> .
  • 检查“作为登录shell运行命令”
  • 完成

打开终端,然后转到编辑>配置文件首选项,然后转到选项卡“标题和命令”,并检查“以登录Shell的身份运行命令”。

启动Bash和现在你可以直接从终端安装Gems,而不使用sudo,错误“RVM不是一个函数,用' RVM use…’不会起作用。”将被消除。

欢呼。

以上答案都是正确的。但当我面对同样的问题时,解决方案如下:

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

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
    source ~/.profile
    
  • MOST IMPORTANT POINT: Ensure that in your .zshrc file every export to PATH is appended with :$PATH. Which i believe was the root of my problems even after following the above steps.

  • post this all my problems of RVM Not being a function went away. If it still does not work, give some error trace over here. After a few hours of struggle to solve this issue, i'm sure i must have seen all related errors.

Hope it helps. Cheers!

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

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

rvm env——path (rvm 1.9.3)

您应该将1.9.3更改为您真正想要的ruby版本,并且它将使rvm成为一个函数,而不考虑shell类型。

我也遇到过这个问题。最后我在终端上执行了这行。

source ~/.rvm/scripts/rvm

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

source ~/.bash_profile

... 应该能行…,可能需要登出并重新登录。

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

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

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

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

你以

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*

我不干净的方式改变红宝石版本是

rvm alias create default ruby-2.2.3 && source ~/.bashrc && rvm list

它可以工作,因为我有行波纹在我的~/。Bashrc,但奇怪的是它并没有自动完成这项工作。

[[ -s "/usr/local/rvm/bin/rvm" ]] && source "/usr/local/rvm/bin/rvm"

我尝试连接。登录到docker容器

docker run -it imagename `/bin/bash --login`

但在这种情况下,容器在后台保持打开状态,我不能输入命令。

我尝试了zhc和终端选项“打开/bin/bash --login