2009-08-29 15 views
4

私はちょうどSnow Leopardにアップグレードしました。前に、私は私が取得端末からサーバを起動したときに罰金が、今実行しているすべてのものを持っていた:私は、生成されたページに着いたとき、それはsqlite3のに動作していないようSnow LeopardとRuby on Rails - SQLite3の問題

=> Booting WEBrick 
=> Rails 2.3.3 application starting on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
[2009-08-28 23:18:19] INFO WEBrick 1.3.1 
[2009-08-28 23:18:19] INFO ruby 1.8.7 (2008-08-11) [universal-darwin10.0] 
[2009-08-28 23:18:19] INFO WEBrick::HTTPServer#start: pid=845 port=3000 

その後、それはそうです。どうすれば修正できますか?ここで私は、スクリプトビューのページに移動するとき、サーバが出力し何:

/!\ FAILSAFE /!\ Fri Aug 28 23:18:34 -0400 2009 
    Status: 500 Internal Server Error 
    uninitialized constant SQLite3::Driver::Native::Driver::API 
    /Library/Ruby/Gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:105:in `const_missing' 
    /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.2.5/lib/sqlite3/driver/native/driver.rb:76:in `open' 
    /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.2.5/lib/sqlite3/database.rb:76:in `initialize' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/sqlite3_adapter.rb:13:in `new' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/sqlite3_adapter.rb:13:in `sqlite3_connection' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `send' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `new_connection' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:245:in `checkout_new_connection' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:188:in `checkout' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `loop' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `checkout' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:183:in `checkout' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:98:in `connection' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:326:in `retrieve_connection' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:123:in `retrieve_connection' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:115:in `connection' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:9:in `cache' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/query_cache.rb:28:in `call' 
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' 
    /Library/Ruby/Gems/1.8/gems/rack-1.0.0/lib/rack/head.rb:9:in `call' 
    /Library/Ruby/Gems/1.8/gems/rack-1.0.0/lib/rack/methodoverride.rb:24:in `call' 
    /Library/Ruby/Gems/1.8/gems/actionpack-2.3.3/lib/action_controller/params_parser.rb:15:in `call' 
    /Library/Ruby/Gems/1.8/gems/actionpack-2.3.3/lib/action_controller/session/cookie_store.rb:93:in `call' 
    /Library/Ruby/Gems/1.8/gems/actionpack-2.3.3/lib/action_controller/reloader.rb:29:in `call' 
    /Library/Ruby/Gems/1.8/gems/actionpack-2.3.3/lib/action_controller/failsafe.rb:26:in `call' 
    /Library/Ruby/Gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call' 
    /Library/Ruby/Gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `synchronize' 
    /Library/Ruby/Gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call' 
    /Library/Ruby/Gems/1.8/gems/actionpack-2.3.3/lib/action_controller/dispatcher.rb:106:in `call' 
    /Library/Ruby/Gems/1.8/gems/rails-2.3.3/lib/rails/rack/static.rb:31:in `call' 
    /Library/Ruby/Gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:46:in `call' 
    /Library/Ruby/Gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in `each' 
    /Library/Ruby/Gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in `call' 
    /Library/Ruby/Gems/1.8/gems/rails-2.3.3/lib/rails/rack/log_tailer.rb:17:in `call' 
    /Library/Ruby/Gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in `call' 
    /Library/Ruby/Gems/1.8/gems/rack-1.0.0/lib/rack/handler/webrick.rb:46:in `service' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:162:in `start' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:95:in `start' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:92:in `each' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:92:in `start' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:23:in `start' 
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/webrick/server.rb:82:in `start' 
    /Library/Ruby/Gems/1.8/gems/rack-1.0.0/lib/rack/handler/webrick.rb:13:in `run' 
    /Library/Ruby/Gems/1.8/gems/rails-2.3.3/lib/commands/server.rb:111 
    /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
    /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require' 
    script/server:3 
+0

私はSnow Leopardでレール2.3.3とsqlite3を問題なく走らせているので、別の場所でこの問題を調べてみましょう。 – ennuikiller

+0

xcode 3.2をインストールしましたか? – devinross

+0

はい、Snow Leopardのためにxcode 3.2とiphone sdk 3.0をインストールしました – ennuikiller

答えて

10

あなたはヒョウからアップグレードした場合、その後、あなたはsqlite3の-ルビー宝石を再インストールする必要があります。まず、XCodeをインストールしてから実行してください。

+0

私はデフォルトのバージョンとしてruby 1.9.1を持っているので、私はそれをする必要はないと思います。 – ennuikiller

+0

SQLite gemはあなたがいるプラットフォームのネイティブコンポーネントをコンパイルします。 Snow Leopardは64ビットで、Leopardとは非常に異なります。ルビーの宝石に強制的にネイティブコンポーネントを再構築すると、問題が解決するはずです(それは私のためでした)。 – askegg

+0

どのように再構築しますか? – devinross

0

Snow Leopard DVDからXCodeを再インストールする必要があります。これはリンケージの問題を修正するはずです!

2

XcodeインストーラからUNIX Dev Toolsをインストールする場合は、必要なヘッダファイル(ruby.h)が含まれている必要があります。

0

私はこの問題に直面しました。

のrm -fr〜/ .gem
sudoの宝石が
sudoの宝石今sqlite3のルビー

をインストールし、私のレール/ sqlite3のアプリが再び実行されているレールをインストールします。これは私がやってしまったものです。

1

sudoのポートは、sqlite3の sudoの宝石は、sqlite3の-ルビー

0

この問題の別の原因は、Snow Leopardのにアップグレードした後、Leopard上でRVM(http://rvm.beginrescueend.com/)と一緒にインストールRubyのバージョンを使用し続けてインストールします。

rvmでインストールされたRubyのバージョンはソースからビルドされているため、sqlite3-ruby gemを使用するにはSnow Leopardに再インストールする必要があります。

0

私も同様の問題がありました。あなたがスタックバックトレースを見れば、あなたはエラーを投げファイルはsqliteのルビー自体の中にあることがわかります。

def open(filename, utf16=false) 
    API.send(utf16 ? :sqlite3_open16 : :sqlite3_open, filename) 
end 

だから、APIクラスが欠落しています。このファイルの先頭にAPIクラスがsqlite3_apiファイルを必要とするから来ていることを示唆している次のコードは次のとおりです。あなたが見ることができるように

begin 
    require 'sqlite3_api' 
rescue LoadError 
    if RUBY_PLATFORM =~ /mingw|mswin/ then 
    RUBY_VERSION =~ /(\d+.\d+)/ 
    require "#{$1}/sqlite3_api" 
    end 
end 

、このコードはmingwの/ mswin以外のプラットフォームとLoadErrorを無視します。これは悪いですし、sqlite3-ruby gemのバグと考えています。

$ irb 
irb(main):001:0> require 'sqlite3_api' 
LoadError: Unable to find library 'libsqlite3.so.8'. - /path/to/ruby/lib/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.5/lib/sqlite3_api.sl 
     from (irb):1:in `require' 
     from (irb):1 
     from /path/to/ruby/bin/irb:12:in `<main>' 
irb(main):002:0> 

メーリングリストへのが、私のために、私は私の共有ライブラリパスで何か欠けていたことに気づい:間違っているかを把握するには、IRBにsqlite3_apiを必要としてみてください。一度修正すれば、すべてがうまくいった。

0

何らかの理由で、これは私にとってはうまく機能しませんでした。

基本的には、以下の手順に沿って最初から始めなければなりませんでした。「設定」段階の http://hivelogic.com/articles/ruby-rails-leopard

  • は、Ruby 1.8.7
  • 再コンパイルをダウンロードしてインストールXCodeの
  • をインストールします(私はこれは私が行方不明になった魔法のステップだったと思う)
  • Rubygemsの1.3.5(1.3.6は廃止いくつかのものを持っているダウンロード再コンパイル
  • )私が対処したくなかったこととsqlite3のアンインストールTHEN Rubygemsの
  • をインストールします。sudo宝石アンインストールsqlite3の-ルビー
  • はそれを再インストールします:sudoの宝石研をすべてsqlite3-ruby

明らかに、上記の手順を試しました。私はXcodeをインストールしようとしました。私はRubygemsを再コンパイルしようとしました...私はRuby自体を再コンパイルした後で、その後Rubygemsをアンインストールし、sqlite3-rubyを再インストールすると問題が解決しました。

こちらがお役に立てば幸いです。私はこのすべて...私のために働いただけの事をやった

0

sudo env ARCHFLAGS="-arch x86_64" gem install sqlite3-ruby 

。注:私はいないCD、XCodeのはdevloper.apple.comからインストールされていませんでした。 XCode ToolsのCDをインストールしても、この問題を解決することはできませんでした。

XCodeがインストールされていない場合は、XCode 3または4をhttp://developer.apple.com/xcodeから取得する必要があります。あなたはアカウントにサインアップする必要があります。現在、99ドルの年会費を支払うことなくXcode 3を無料でダウンロードできます。