在ruby脚本和irb中运行时“RVM不是函数”错误

时间:2013-12-15 01:03:59

标签: ruby rvm

我在ruby和irb中运行%x{rvm use @myapp}时出错。错误是“RVM不是一个函数,用'rvm use ...'选择rubies将无效。”

这是我尝试过的:
1.“rvm use @myapp”命令在OSX命令提示符下工作(使用OSX Mavericks)
2.确保RVM是最新版本 3.重新加载RVM检查RVM是命令提示符中的一个功能
4.(在irb和ruby的%x{})中仍然失败 5.根据一些SO帖子,我将OSX终端首选项从登录shell更改为/bin/bash/bin/bash --login。退出,打开了新的终端窗口但是所有的努力都是徒劳的 6.检查.bash_profile是否为[[-s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

关于如何让%x{rvm use @myapp}在ruby和irb中工作的任何想法?

1 个答案:

答案 0 :(得分:1)

此处发生的情况是,您shellruby已将irb rvm定义为function并添加到{{1}该函数在shell中优先,并且一切正常,但是当您打开PATHruby时,它是一个新进程,它只继承包含irb的环境变量,而不是继承函数,另外从ruby运行PATH会创建另一个shell进程,它既不是登录shell也不是交互式shell,它们分别会使shell加载%x{}~/.bash_profile

根据你想做什么,你几乎没有选择,要执行另一个~/.bashrc / ruby,你可以gem使用rvm ... do ...这样:

%x{}

OR:

rvm @myapp do ruby -e '...'

OR:

rvm @myapp do gem install ...

它允许单个命令在给定的ruby

的上下文中运行