【发布时间】:2011-10-15 10:29:56
【问题描述】:
新信息
rails console 会发生这种情况:
Loading development environment (Rails 3.1.1)
ruby-1.9.2-p290 :001 > RUBY_VERSION
=> "1.8.7"
这里发生了一些非常奇怪的事情 - 提示显示 1.9.2 但 RUBY_VERSION 显示 1.8.7。
我正在使用 RVM,但在 Ubuntu 上遇到 Rails 问题。
$ which ruby
/home/nick/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
$rvm list
rvm rubies
=> ruby-1.9.2-p290 [ i686 ]
但如果我这样做 gem env 我会得到
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.11
- RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
- INSTALLATION DIRECTORY: /home/nick/.rvm/gems/ruby-1.9.2-p290
- RUBY EXECUTABLE: /usr/bin/ruby1.8
- EXECUTABLE DIRECTORY: /home/nick/.rvm/gems/ruby-1.9.2-p290/bin
当我运行 Rails 时,如果我执行 puts RUBY_VERSION,它会输出 1.8.7。
事实上,在irb 中,RUBY_VERSION 给出了1.9.2,但在rails console 中给出了1.8.7。
主要问题是当它到达我的 JSON 风格的哈希文字时它失败了。
我尝试了各种卸载 rvm、rails、bundler 等的方法,但似乎没有任何效果。有什么想法吗?
编辑:
这是rvm info的输出:
ruby-1.9.2-p290:
system:
uname: "Linux ubie 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:50:42 UTC 2011 i686 i686 i386 GNU/Linux"
bash: "/bin/bash => GNU bash, version 4.2.10(1)-release (i686-pc-linux-gnu)"
zsh: " => not installed"
rvm:
version: "rvm 1.8.6 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]"
ruby:
interpreter: "ruby"
version: "1.9.2p290"
date: "2011-07-09"
platform: "i686-linux"
patchlevel: "2011-07-09 revision 32553"
full_version: "ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]"
homes:
gem: "/home/nick/.rvm/gems/ruby-1.9.2-p290"
ruby: "/home/nick/.rvm/rubies/ruby-1.9.2-p290"
binaries:
ruby: "/home/nick/.rvm/rubies/ruby-1.9.2-p290/bin/ruby"
irb: "/home/nick/.rvm/rubies/ruby-1.9.2-p290/bin/irb"
gem: "/home/nick/.rvm/rubies/ruby-1.9.2-p290/bin/gem"
rake: "/home/nick/.rvm/gems/ruby-1.9.2-p290/bin/rake"
environment:
PATH: "/home/nick/.rvm/gems/ruby-1.9.2-p290/bin:/home/nick/.rvm/gems/ruby-1.9.2-p290@global/bin:/home/nick/.rvm/rubies/ruby-1.9.2-p290/bin:/home/nick/.rvm/bin:/home/nick/local/node/bin:/home/nick/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
GEM_HOME: "/home/nick/.rvm/gems/ruby-1.9.2-p290"
GEM_PATH: "/home/nick/.rvm/gems/ruby-1.9.2-p290:/home/nick/.rvm/gems/ruby-1.9.2-p290@global"
MY_RUBY_HOME: "/home/nick/.rvm/rubies/ruby-1.9.2-p290"
IRBRC: "/home/nick/.rvm/rubies/ruby-1.9.2-p290/.irbrc"
RUBYOPT: ""
gemset: ""
但gem env 仍然告诉我,在 RubyGems 环境中,Ruby 版本是1.8.7。我就是不明白。
【问题讨论】:
-
看起来您编辑了您的问题 - PATH 看起来不错。我之前看到的 /usr/local 引用发生了什么?
-
@Tilo 我不确定你在说什么 /usr/local...你在哪里看到的?
-
hmmm .. 抱歉,我以为我之前在您的问题中看到了这一点。我的错。
-
您能否尝试为新用户帐户安装 RVM 和 Ruby 1.9.2,看看是否可行?我怀疑您拥有的 ~/.rvm 安装或早期系统范围 RVM 安装的某些剩余部分有问题。或者在 Ruby 1.9.2 的编译过程中似乎出了什么问题。
-
如果你可以让它为一个新的用户帐户工作,那么这很好地表明你的 ~/.rvm 已经搞砸了,我会
rm -rf ~/.rvm并重新安装 RVM 和 Ruby在您的原始帐户上刮擦。
标签: ruby-on-rails ubuntu ruby-1.9