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 # 今回はこのディレクトリが該当
もう少しガイドの充実が望まれるところ。