为什么Rails使用旧版本的Ruby,即使我已经更新了它?
我有一台安装了Ruby 1.8的Ubuntu机器。
我将我的Rails应用程序复制到它,并进行了bundle install
。 它装好了一切。 该应用程序需要Ruby 1.9,因此我下载了Ruby源代码,编译并安装了它。
当我做ruby -v
,我得到ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]
,但是当我在rails console
上执行RUBY_VERSION
时,我得到1.8.7
。 当我尝试运行我的Rails应用程序时,它失败了。 我的Rails应用程序使用旧版本的Ruby,即使从控制台和其他任何地方都可以正常工作。 哎呀,我甚至创建了一个新的Rails应用程序,它使用了更新的版本。
有什么想法正在发生什么?
等等……你实际上是从源代码编译的吗? 你很可能在你的控制台路径中有新版本的ruby,但你的应用程序dosnt拥有它。 从系统中卸载ruby并使用RVM,就像管理ruby版本一样。
输入“which ruby”和“which irb”
你应该看到一个带有〜/ .rvm /的路径……但是我打赌你在你的系统上有一个旧版本的ruby和irb ..可能在/ usr / bin下
要摆脱这个,你需要在RVM中设置你的默认ruby版本,你需要确保RVM设置正确(例如在.bashrc或.bash_profile文件中)
输入“rvm list”..你应该看到这样的东西:
$ rvm list rvm rubies ruby-1.8.7-p302 [ x86_64 ] => ruby-1.9.2-p0 [ x86_64 ]
注意:您应该看到指向1.9.2的箭头,表示它是默认版本
如果未设置为默认值,请键入:“rvm –default use 1.9.2”
还要检查“printenv PATH”以检查.rvm目录是否位于PATH中的/ usr / bin之前