我已经让 Ruby、Rails、Rake 和朋友在 OSX 上使用 RVM 工作得很好,但是当我启动一个新的 shell(Terminal.app 中的新标签)时,rake 任务似乎“失去”了他们的环境:
$ rake my_module:my_task
Could not find uglifier-1.2.7 in any of the sources
Run `bundle install` to install missing gems.
如果我发出“rvm use”(我相信它只会打印当前的红宝石,但不会改变任何东西),那么它可以正常工作:
$ rvm use
Using /Users/username/.rvm/gems/ruby-1.9.3-p194
$ rake my_module:my_task # works fine now!
启动新外壳时似乎会发生这种情况。我将 rvm 安装为单用户安装,我的 .bash_profile 底部有以下内容:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
我已经通过在该行之后放置一些 echo 语句来验证我的 .bash_profile 实际上正在执行;当我打开一个新选项卡时,我在命令行上看到了回声,所以它似乎正在工作。知道为什么 rake 在没有“rvm 使用”的情况下无法工作吗?