为什么Rails使用旧版本的Ruby,即使我已经更新了它?

时间:2011-06-03 20:16:51

标签: ruby-on-rails ruby ubuntu-9.10

我有一台安装了Ruby 1.8的Ubuntu机器。

我将Rails应用程序复制到它,然后bundle install。它装好了一切。该应用程序需要Ruby 1.9,因此我下载了Ruby源代码,编译并安装它。

当我ruby -v时,我得到ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux],但当我在RUBY_VERSIONrails console时,我得到1.8.7。当我尝试运行我的Rails应用程序时,它失败了。我的Rails应用程序使用的是旧版本的Ruby,即使从控制台和其他任何地方都可以正常工作。哎呀,我甚至创建了一个新的Rails应用程序,它使用的是更新的版本。

任何想法发生了什么?

2 个答案:

答案 0 :(得分:0)

等等......你实际上是从源代码编译的吗?您最有可能在控制台路径中使用新版本的ruby,但应用程序dosnt拥有它。从系统中卸载ruby并使用RVM,这样就可以管理ruby版本。

答案 1 :(得分:0)

输入“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之前