aka*_*kam 13 rubygems ruby-on-rails ruby-on-rails-3
$:/Users/dev/.rvm/gems/ruby-1.9.2-head@rails3/gems/sqlite3-ruby-1.3.1/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault ruby 1.8.7( 2009-06-12 patchlevel 174)[universal-darwin10.0]
Abort trap
Run Code Online (Sandbox Code Playgroud)
似乎ruby不是正确的版本(1.8.7)但是:
$: ruby - v
$: ruby 1.9.2dev (2010-07-15 revision 28653) [x86_64-darwin10.4.0]
$: gem list
*** LOCAL GEMS ***
abstract (1.0.0)
actionmailer (3.0.0.beta4, 3.0.0.beta3)
actionpack (3.0.0.beta4, 3.0.0.beta3)
activemodel (3.0.0.beta4, 3.0.0.beta3)
activerecord (3.0.0.beta4, 3.0.0.beta3)
activeresource (3.0.0.beta4, 3.0.0.beta3)
activesupport (3.0.0.beta4, 3.0.0.beta3)
arel (0.4.0, 0.3.3)
builder (2.1.2)
bundler (0.9.26)
erubis (2.6.6)
i18n (0.4.1, 0.3.7)
mail (2.2.5)
memcache-client (1.8.5)
mime-types (1.16)
polyglot (0.3.1)
rack (1.1.0)
rack-mount (0.6.9)
rack-test (0.5.4)
rails (3.0.0.beta4, 3.0.0.beta3)
railties (3.0.0.beta4, 3.0.0.beta3)
rake (0.8.7)
rdoc (2.5.9)
sqlite3-ruby (1.3.1)
text-format (1.0.0)
text-hyphen (1.0.0)
thor (0.13.8)
treetop (1.4.8)
tzinfo (0.3.22)
will_paginate (3.0.pre)
Run Code Online (Sandbox Code Playgroud)
更多信息 :
$: ~ dev$ ruby -v
ruby 1.9.2dev (2010-07-15 revision 28653) [x86_64-darwin10.4.0]
$ :~ dev$ rails -v
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:827:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:261:in `activate'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:68:in `gem'
from /usr/bin/rails:18
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
非常感谢 :)
雪豹也有同样的问题; 即使在rvm 1.9.2@rails3下,我也可以看到正确的rails版本号.
我必须使用以下命令来使用rails命令:
ruby which rails g scaffold User name:string bio:text
有解决方案吗
我终于找到了原因.看起来gem install rails没有设法在rvm中为rails安装适当的二进制文件.并且rails仍然是引用/usr/bin/rails,它具有#!系统ruby 的线性点.
你可以看到它:
head -1 `which rails`
Run Code Online (Sandbox Code Playgroud)
返回:
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)
改为:
#!/usr/bin/env ruby
Run Code Online (Sandbox Code Playgroud)
将解决问题.我不知道这个问题是否会影响其他可执行脚本的gem安装,但是为什么gem不能将rails安装到rvm自己的bin路径对我来说是一个谜.无论如何,这个解决方法对我来说很脏.
我在使用ree-1.8.7-2011.03时遇到了同样的问题.(Ruby企业版)
我卸载了sqlite3宝石然后我跑了:
gem install sqlite3
Run Code Online (Sandbox Code Playgroud)
它起作用了.请注意,sqlite3-ruby gem现在建议立即使用'sqlite3'.
我不知道在你的情况下这是如何发生的,但在我看来,Rails 试图在你的系统安装了 Ruby 的情况下运行,但正在从 1.9.2 加载路径加载 gem。很奇怪。
您在 shell 中看到正确的 Ruby 版本(RVM 在本地路径中具有优先权),但这显然不是 Rails 启动的版本。
检查您如何启动 Rails,以及 Ruby 版本之间的路径、链接或别名是否混乱