RVM,Gemset,Bash on MacOSX-我在升级过程中做了什么



每次在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/

最新更新