2

元の問題:

私は (Ruby の初心者) RVM を使用して Mac OSX 10.6 で Ruby を管理しています

これが私のMac OX情報です:

$ rvm info

ruby-1.9.2-head@1.9.2-head-gemset:

  system:
    uname:       "Darwin fillibuster-2.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386"
    bash:        "/bin/bash => GNU bash, version 3.2.48(1)-release (i386-apple-darwin10.0)"
    zsh:         "/bin/zsh => zsh 4.3.9 (i386-apple-darwin10.0)"

  rvm:
    version:      "rvm 1.5.2 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]"

  ruby:
    interpreter:  "ruby"
    version:      "1.9.2p188"
    date:         "2011-03-28"
    platform:     "i386-darwin10.6.0"
    patchlevel:   "2011-03-28 revision 31204"
    full_version: "ruby 1.9.2p188 (2011-03-28 revision 31204) [i386-darwin10.6.0]"

  homes:
    gem:          "/Users/dawnbuie/.rvm/gems/ruby-1.9.2-head@1.9.2-head-gemset"
    ruby:         "/Users/dawnbuie/.rvm/rubies/ruby-1.9.2-head"

  binaries:
    ruby:         "/Users/dawnbuie/.rvm/rubies/ruby-1.9.2-head/bin/ruby"
    irb:          "/Users/dawnbuie/.rvm/rubies/ruby-1.9.2-head/bin/irb"
    gem:          "/Users/dawnbuie/.rvm/rubies/ruby-1.9.2-head/bin/gem"
    rake:         "/Users/dawnbuie/.rvm/rubies/ruby-1.9.2-head/bin/rake"

  environment:
    PATH:         "/Users/dawnbuie/.rvm/gems/ruby-1.9.2-head@1.9.2-head-gemset/bin:/Users/dawnbuie/.rvm/gems/ruby-1.9.2-head@global/bin:/Users/dawnbuie/.rvm/rubies/ruby-1.9.2-head/bin:/Users/dawnbuie/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin"
    GEM_HOME:     "/Users/dawnbuie/.rvm/gems/ruby-1.9.2-head@1.9.2-head-gemset"
    GEM_PATH:     "/Users/dawnbuie/.rvm/gems/ruby-1.9.2-head@1.9.2-head-gemset:/Users/dawnbuie/.rvm/gems/ruby-1.9.2-head@global"
    MY_RUBY_HOME: "/Users/dawnbuie/.rvm/rubies/ruby-1.9.2-head"
    IRBRC:        "/Users/dawnbuie/.rvm/rubies/ruby-1.9.2-head/.irbrc"
    RUBYOPT:      ""
    gemset:       "1.9.2-head-gemset"

ここに私のインストールされた宝石のバージョンがあります

$ gem list

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.6)
actionpack (3.0.6)
activemodel (3.0.6)
activerecord (3.0.6)
activeresource (3.0.6)
activesupport (3.0.6)
arel (2.0.9)
builder (2.1.2)
bundler (1.0.11)
erubis (2.6.6)
i18n (0.5.0)
mail (2.2.15)
mime-types (1.16)
polyglot (0.3.1)
rack (1.2.2)
rack-mount (0.6.14)
rack-test (0.5.7)
rails (3.0.6)
railties (3.0.6)
rake (0.8.7)
sqlite3-ruby (1.3.2)
thor (0.14.6)
treetop (1.4.9)
tzinfo (0.3.26)

実際のレール構築部分に到達しようとしているチュートリアルに従っていますが、ここまでは問題ありません。

$ rails generate scaffold User name:string email:string

しかし、これを入力すると、常に次のエラーが発生します。

$ rake db:migrate

問題が sqlite3 のバージョンにあるのか、それとも ruby​​ 1.9.2p180 にあるのかわかりません。Google を使用してこのエラーを探してみましたが、これだけが思いつきましたhttps://redmine.ruby-lang.org/添付ファイル/1505/ruby-1.9.2-bug.txt

以下のエラーを解釈する方法がわかりません。すべてのピースがどのように組み合わされるかを把握しているだけです。

ポインタをありがとう、またはエラーの原因を特定するのに役立ちます

エラーメッセージ:

$ rake db:migrate --trace
(in /Users/bobstuff/Documents/Projects/rubyonrails/rails_projects/first_app)
/Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/sqlite3-1.3.3/lib/sqlite3/sqlite3_native.bundle: [BUG] Bus Error
ruby 1.9.2p180 (2011-02-18 revision 30909) [i386-darwin10.6.0]

-- control frame ----------
c:0029 p:-7277696 s:0087 b:0087 l:000086 d:000086 TOP   
c:0028 p:---- s:0085 b:0085 l:000084 d:000084 CFUNC  :require
c:0027 p:0029 s:0081 b:0081 l:000077 d:000080 BLOCK  /Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/sqlite3-1.3.3/lib/sqlite3.rb:6
c:0026 p:0035 s:0078 b:0078 l:000077 d:000077 TOP    /Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/sqlite3-1.3.3/lib/sqlite3.rb:2
c:0025 p:---- s:0076 b:0076 l:000075 d:000075 FINISH
c:0024 p:---- s:0074 b:0074 l:000073 d:000073 CFUNC  :require
c:0023 p:0026 s:0070 b:0070 l:000051 d:000069 BLOCK  /Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.11/lib/bundler/runtime.rb:68
c:0022 p:---- s:0067 b:0067 l:000066 d:000066 FINISH
c:0021 p:---- s:0065 b:0065 l:000064 d:000064 CFUNC  :each
c:0020 p:0091 s:0062 b:0062 l:000051 d:000061 BLOCK  /Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.11/lib/bundler/runtime.rb:66
c:0019 p:---- s:0057 b:0057 l:000056 d:000056 FINISH
c:0018 p:---- s:0055 b:0055 l:000054 d:000054 CFUNC  :each
c:0017 p:0046 s:0052 b:0052 l:000051 d:000051 METHOD /Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.11/lib/bundler/runtime.rb:55
c:0016 p:0021 s:0048 b:0048 l:000047 d:000047 METHOD /Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.11/lib/bundler.rb:120
c:0015 p:0079 s:0044 b:0044 l:000043 d:000043 TOP    /Users/bobstuff/Documents/Projects/rubyonrails/rails_projects/first_app/config/application.rb:7
c:0014 p:---- s:0042 b:0042 l:000041 d:000041 FINISH
c:0013 p:---- s:0040 b:0040 l:000039 d:000039 CFUNC  :require
c:0012 p:0013 s:0036 b:0036 l:000035 d:000035 METHOD <internal:lib/rubygems/custom_require>:29
c:0011 p:0026 s:0031 b:0031 l:000030 d:000030 TOP    /Users/bobstuff/Documents/Projects/rubyonrails/rails_projects/first_app/Rakefile:4
c:0010 p:---- s:0029 b:0029 l:000028 d:000028 FINISH
c:0009 p:---- s:0027 b:0027 l:000026 d:000026 CFUNC  :load
c:0008 p:0334 s:0023 b:0023 l:000022 d:000022 METHOD /Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2373
c:0007 p:0009 s:0018 b:0018 l:000011 d:000017 BLOCK  /Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2007
c:0006 p:0009 s:0016 b:0016 l:000015 d:000015 METHOD /Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2058
c:0005 p:0011 s:0012 b:0012 l:000011 d:000011 METHOD /Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2006
c:0004 p:0021 s:0009 b:0009 l:000008 d:000008 METHOD /Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:1991
c:0003 p:0139 s:0006 b:0006 l:000b74 d:000ed4 EVAL   /Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/bin/rake:35
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:000b74 d:000b74 TOP   
---------------------------
-- Ruby level backtrace information ----------------------------------------
/Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/bin/rake:35:in `<main>'
/Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:1991:in `run'
/Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/Users/bobstuff/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2373:in `load'
/Users/bobstuff/Documents/Projects/rubyonrails/rails_projects/first_app/Rakefile:4:in `<top (required)>'
<internal:lib/rubygems/custom_require>:29:in `require'
<internal:lib/rubygems/custom_require>:29:in `require'
/Users/bobstuff/Documents/Projects/rubyonrails/rails_projects/first_app/config/application.rb:7:in `<top (required)>'
/Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.11/lib/bundler.rb:120:in `require'
/Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.11/lib/bundler/runtime.rb:55:in `require'
/Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.11/lib/bundler/runtime.rb:55:in `each'
/Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.11/lib/bundler/runtime.rb:66:in `block in require'
/Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.11/lib/bundler/runtime.rb:66:in `each'
/Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.11/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
/Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.11/lib/bundler/runtime.rb:68:in `require'
/Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/sqlite3-1.3.3/lib/sqlite3.rb:2:in `<top (required)>'
/Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/sqlite3-1.3.3/lib/sqlite3.rb:6:in `rescue in <top (required)>'
/Users/bobstuff/.rvm/gems/ruby-1.9.2-p180/gems/sqlite3-1.3.3/lib/sqlite3.rb:6:in `require'

-- C level backtrace information -------------------------------------------
0   libruby.1.9.1.dylib                 0x00195ca6 rb_vm_bugreport + 230
1   libruby.1.9.1.dylib                 0x0003f03f report_bug + 415
2   libruby.1.9.1.dylib                 0x0003f0eb rb_bug + 43
3   libruby.1.9.1.dylib                 0x0010df4b sigbus + 27
4   libSystem.B.dylib                   0x97b8246b _sigtramp + 43
5   ???                                 0xffffffff 0x0 + 4294967295
6   libruby.1.dylib                     0x00754f27 rb_intern + 62
7   libruby.1.dylib                     0x0070b7b2 rb_define_module + 32
8   sqlite3_native.bundle               0x004f160f Init_sqlite3_native + 27
9   libruby.1.9.1.dylib                 0x00004bd4 dln_load + 244
10  libruby.1.9.1.dylib                 0x001791cb rb_vm_call_cfunc + 187
11  libruby.1.9.1.dylib                 0x000462fe rb_require_safe + 1022
12  libruby.1.9.1.dylib                 0x00191010 vm_call_method + 944
13  libruby.1.9.1.dylib                 0x0017a845 vm_exec_core + 5397
14  libruby.1.9.1.dylib                 0x00184aed vm_exec + 1821
15  libruby.1.9.1.dylib                 0x00184fd6 rb_iseq_eval + 358
16  libruby.1.9.1.dylib                 0x00044f35 rb_load_internal + 293
17  libruby.1.9.1.dylib                 0x00046332 rb_require_safe + 1074
18  libruby.1.9.1.dylib                 0x00191010 vm_call_method + 944
19  libruby.1.9.1.dylib                 0x0017a845 vm_exec_core + 5397
20  libruby.1.9.1.dylib                 0x00184aed vm_exec + 1821
21  libruby.1.9.1.dylib                 0x0019231c rb_yield + 604
22  libruby.1.9.1.dylib                 0x0000ac6e rb_ary_each + 62
23  libruby.1.9.1.dylib                 0x00191010 vm_call_method + 944
24  libruby.1.9.1.dylib                 0x0017a845 vm_exec_core + 5397
25  libruby.1.9.1.dylib                 0x00184aed vm_exec + 1821
26  libruby.1.9.1.dylib                 0x0019231c rb_yield + 604
27  libruby.1.9.1.dylib                 0x0000ac6e rb_ary_each + 62
28  libruby.1.9.1.dylib                 0x00191010 vm_call_method + 944
29  libruby.1.9.1.dylib                 0x0017a845 vm_exec_core + 5397
30  libruby.1.9.1.dylib                 0x00184aed vm_exec + 1821
31  libruby.1.9.1.dylib                 0x00184fd6 rb_iseq_eval + 358
32  libruby.1.9.1.dylib                 0x00044f35 rb_load_internal + 293
33  libruby.1.9.1.dylib                 0x00046332 rb_require_safe + 1074
34  libruby.1.9.1.dylib                 0x00191010 vm_call_method + 944
35  libruby.1.9.1.dylib                 0x0017a845 vm_exec_core + 5397
36  libruby.1.9.1.dylib                 0x00184aed vm_exec + 1821
37  libruby.1.9.1.dylib                 0x00184fd6 rb_iseq_eval + 358
38  libruby.1.9.1.dylib                 0x00044f35 rb_load_internal + 293
39  libruby.1.9.1.dylib                 0x00046918 rb_f_load + 136
40  libruby.1.9.1.dylib                 0x00175835 call_cfunc + 581
41  libruby.1.9.1.dylib                 0x00191010 vm_call_method + 944
42  libruby.1.9.1.dylib                 0x0017a845 vm_exec_core + 5397
43  libruby.1.9.1.dylib                 0x00184aed vm_exec + 1821
44  libruby.1.9.1.dylib                 0x00184e47 rb_iseq_eval_main + 535
45  libruby.1.9.1.dylib                 0x00042569 ruby_exec_internal + 153
46  libruby.1.9.1.dylib                 0x00044aca ruby_run_node + 90
47  ruby                                0x00001f1f main + 95
48  ruby                                0x00001eb5 start + 53

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Abort trap

編集:答えが見つかりました:

問題は、私が古い (2007 年!) mac アーキテクチャを使用していたことでした - MacBook Core Duo (Core 2 Duo と混同しないでください) は 32 ビットであり、現在の 64 ビットではなく、このチュートリアルで推奨されているsqlite3 の現在のバージョン(gem 'sqlite3-ruby', :require => 'sqlite3') は、残りの Gem では機能しませんでした。sqliteをアンインストールしましたが、

gem uninstall sqlite3 sqlite3-ruby
gem pristine --all  // not sure if necessary, suggested in comments

私のGemfileを次のように編集しました:

gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'

それから

Bundle install
rake db:migrate

そしてそれは動作します!ここのところ。

Josh Crewsが sqlite3 の以前のバージョンを使用するようにという提案を見つけました。

4

2 に答える 2

4

質問の上部にある回答を参照してください。


問題は、私が古い (2007 年!) mac アーキテクチャを使用していたことでした - MacBook Core Duo (Core 2 Duo と混同しないでください) は 32 ビットであり、現在の 64 ビットではなく、このチュートリアルで推奨されている sqlite3 の現在のバージョン (gem 'sqlite3-ruby', :require => 'sqlite3') は、残りの Gem では機能しませんでした。sqliteをアンインストールしましたが、

gem uninstall sqlite3 sqlite3-ruby
gem pristine --all  // not sure if necessary, suggested in comments

私のGemfileを次のように編集しました:

gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'

それから

Bundle install
rake db:migrate

そしてそれは動作します!ここのところ。

Josh Crews が sqlite3 の以前のバージョンを使用するようにという提案を見つけました。

于 2011-04-14T18:21:30.783 に答える
2

OK、設定を整理できるかどうか見てみましょう。

RVM と Ruby の現在のリビジョンを使用しているため、RVM 環境に関するさらに多くの情報を収集してください。rvm infoその出力を入力し、編集して元の質問に追加します。これにより、RVM が認識していることについて詳しく知ることができます。

ここにいくつかの質問があります:

  1. 以前に RVM を使用して Leopard をインストールしてから、Snow Leopard に切り替えましたか? その場合、Ruby は 32 ビット用にコンパイルされますが、それ以降にコンパイルされたネイティブ ドライバーはすべて 64 ビットになり、非常に奇妙な動作を引き起こす可能性があります。修正にはいくつかのコマンドと再コンパイルが必要ですが、それほど苦痛ではありません。
  2. Snow Leopard DVD から Apple の XCode をインストールしましたか、それともApple の XCode サイトから直接新規インストールしましたか? Snow Leopard の XCode のバージョンにはバグがあり、使用すべきではありません。Apple のサイトから無料でダウンロードできます。大きなダウンロードです。
  3. RVM は最新ですか? 定期的に実行しrvm get updateます。それはこの特定の問題を解決しないかもしれませんが、いくつかの奇妙な点を修正することができます. rvm -vバージョンの確認に使用します。v1.5.2 が本日現在の最新版です。

sqlite3-ruby can't make on rvm 1.8.7の情報の一部が役立つ場合があります。


編集:

あなたの からいくつかの点が際立っていますrvm info:

  • Ruby 1.9.2 のバージョンは p188 です。p180 は、私の記憶が正しければ、現在の安定バージョンです。少なくとも、RVM が知っていることによると、rvm list knownそのリストが表示されます。これにより、一緒にテストされていないドライバーで問題が発生する可能性があります。現在の「1.9.2」のインストールを検討することをお勧めします。RVM には、upgradeRuby のバージョン間で gem をインストールしてコピーできる便利なコマンドがありますrvm upgrade 1.9.2-p188 1.9.2-p180
  • お使いのバージョンの Ruby 1.9.2-p188 は 32 ビットとしてコンパイルされています。rvm info「 」がいくつかの場所に表示さi386-apple-darwin10.0れます。64 ビットの Ruby では " x86_64-darwin10.6.0" と表示されます。uninstallRuby バージョンを RVM に指示することで簡単に再コンパイルできinstallますrvm uninstall 1.9.2p188 && rvm install 1.9.2p188。次に、ネイティブ ドライバーを持つ gem を再構築する必要がありますgem pristine --all。インストールされているすべての gem を再構築します。
于 2011-04-07T04:35:38.130 に答える