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网站,在基础部分,他们有这个命令:
源$(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的过程
- 您已经安装了最新的XCode(> = 4.3)和命令行Objective-C编译器“clang”。
- 您必须运行“bash”shell才能使此过程正常工作。
- 转到系统偏好设置
- 点击“用户和组”
- 点击面板左下angular的锁,input密码解锁。
- 在面板左侧窗格中的用户图标上单击“Ctrl-Click”,然后select“高级选项…”
- 将loginShell更改为“/ bin / bash”
- closures首选项
- 打开terminal窗口(按下命令+空格键并input“terminal”)
- 按照以下说明操作:
笔记:
-
要安装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*