2007-06-16
[Ruby]gem install sqlite3-ruby に苦戦したのでメモ
環境
- Linux(Debian)
- Sqlite3 ... apt-get install sqlite3 (sqlite3_3.3.8-1.1_i386.deb)
- Ruby ... 野良ビルド(ruby-1.8.6.tar.gz)
ローカルのユーザ環境にRubyとgemをインストール済み。次に、
gem install sqlite3-ruby
を実行すると次のようなエラー。
Building native extensions. This could take a while... ERROR: While executing gem ... (Gem::Installer::ExtensionBuildError) ERROR: Failed to build gem native extension. ruby extconf.rb install sqlite3-ruby checking for sqlite3.h... no make make: *** `sqlite3_api_wrap.o' に必要なターゲット `ruby.h' を make するルールがありません. 中止. Gem files will remain installed in /home/dan/local/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1 for inspection. Results logged to /home/dan/local/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/ext/sqlite3_api/gem_make.out
インクルードするヘッダのパスを環境変数か何かで教えてやればよさそうなんだけど良くわからないので、 Makefileのあるディレクトリにruby.hとdefines.hを置いてやる。
cd /home/dan/local/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/ext/sqlite3_api ln -s /home/dan/local/ruby/lib/ruby/1.8/i686-linux/ruby.h ln -s /home/dan/local/ruby/lib/ruby/1.8/i686-linux/defines.h
すると今後は、
sqlite3_api_wrap.c:1064:21: sqlite3.h: そのようなファイルやディレクトリはありません
といって止まるので、手元の環境は debian だから、
su - apt-get install libsqlite3-dev
を実行。
もう一度 gem install を実行したら無事通った。
gem install activerecord
を実行して下記サイトのサンプルを実行してみる。ちゃんと動いた。
追記(2007/06/19):今日改めてRubyのインストールからやり直したら上記のような問題は起こらず普通に gem install sqlite3-ruby が通った。