sqlite3-ruby のインストールでハマる

sqlite3-ruby のインストールでハマったのでメモ。
インストールしたい gem が外部依存を持つ場合に必要となる話。


自社のサーバ環境は sqlite3 が標準パスにインストールされていない。
以下のように gem で sqlite3-ruby をインストールすると(拡張ライブラリのコンパイルの際に) sqlite3.h が見えなくてエラーとなる。

$ gem install sqlite3-ruby


これを回避するためには gem にコンパイルオプションを渡したい。
sqlite3-ruby の場合は以下のように対応可能。

$ gem install sqlite3-ruby -- \
  --with-sqlite3-include=/opt/local/include \
  --with-sqlite3-lib=/opt/local/lib \
  --with-swig


すなわち gem にコンパイルオプションを渡すことは可能なのだが、gem help などではその一般的なガイドは出てこない。
ではどこにそのガイドがあるかというと、各 gem の README などを参照する必要がある。
インストールを試みるも失敗した場合、ダウンロード済み(未インストール)の gem (を展開したディレクトリ)は以下のように求めることができる。

$ gem environment
RubyGems Environment:
  - VERSION: 0.9.4 (0.9.4)
  - INSTALLATION DIRECTORY: /xxx/lib/ruby/gems/1.8               # このパスを使用
  - GEM PATH:
     - /home/projects/lib/ruby/gems/1.8
  - REMOTE SOURCES:
     - http://gems.rubyforge.org
$ ls /xxx/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1              # 今回はこのディレクトリが該当


もう少しガイドの充実が望まれるところ。