Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
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 が通った。