0

我有一台安装了 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 应用程序,它使用了更新的版本。

有什么想法吗?

4

2 回答 2

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 之前

于 2011-06-04T09:29:43.480 回答
0

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

于 2011-06-03T21:02:09.310 回答