每次在Mac OSX Lion中打开新的终端时,rails都不会加载。这是在我升级到ruby 1.9.3和rails 3.2之后,所以我做了很多配置,但不确定我搞砸了什么。它过去工作得很好。
如果我在启动时加载一个新的终端,并键入:
rvm
这是有效的。
如果我键入
ruby -v
我得到了正确的(1.9.3)
但是如果我输入rails-v,我会得到一个错误:
/Users/userishere/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find rails (>= 0) amongst [rake-0.9.2.2, rake-0.9.2] (Gem::LoadError)
from /Users/userishere/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /Users/userishere/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems.rb:1208:in `gem'
from /usr/bin/rails:18:in `<main>'
如果我键入:
rvm use 1.9.3p0@rails32 --default
这使得rails可以正常工作,但只有在终端窗口中——即使是终端中的一个新选项卡,rails也会出现错误——无论何时启动,我如何让它接受gemset/config作为全局默认值?我有:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
在我的.bash_profile.中
在升级过程中,我对配置/遗漏做了什么?这看起来很简单,但我没有发现。
我刚刚使用命令rvm 1.9.2-p290@mybranch --default
切换了我自己的默认rvm(并不是说我在命令中没有"use")
然后,如果您打开一个新的终端窗口或选项卡并键入rvm list
,您应该会在它使用的ruby版本旁边看到一个=>
。我看到这个:
ree-1.8.7-2010.02 [ x86_64 ]
ruby-1.8.7-p302 [ x86_64 ]
ruby-1.9.1-p378 [ x86_64 ]
ruby-1.9.2-p0 [ x86_64 ]
ruby-1.9.2-p136 [ x86_64 ]
ruby-1.9.2-p180 [ x86_64 ]
=> ruby-1.9.2-p290 [ x86_64 ]
我想看看我在命令提示符旁边使用的是哪个rvm版本和gemset。在您列出的加载RVM函数的行之前的.bash_profile
中,添加以下内容:
PS1="\$(~/.rvm/bin/rvm prompt i v g s)$PS1"
这是在我的提示前加上的:ruby-1.9.2@myapp
rvm1.9.3-p0@rails32--默认情况下,只将其设置为适用于当前终端窗口,一旦我添加了另一个或退出并返回,它就会返回到不工作状态。
我通过在我的应用程序目录中添加一个.rvmrc文件来解决这个问题。它现在加载gemset&ruby版本正确。
依据:http://seanbehan.com/mac-os-x/installing-and-using-rvm-on-mac-os-x-creating-gemsets-and-reverting-to-original-environment/