サイログ。

~雑多な記事置き場~

拡張ライブラリファイルを適切な場所に移動させたい

現在Miyakoでは、拡張ライブラリファイル(miyako_no_katana.so/.bundle)を、ベースディレクトリからlib/Miyakoにコピーしています。
さて、Rubygems対応にしたいときに、この動作をどのようにしようかと試行錯誤していました。

コレは、そのときのメモです。

あるとき、require_pathsを以下のようにすると、libディレクトリに拡張ライブラリファイルを勝手にコピーしてくれることが分かりました。

s.require_paths = ["lib"]

そこで、require_pathsを以下のようにしてみました。

s.require_paths = ["lib", "Miyako/lib"]

残念! ファイルはlibディレクトリのみにコピーされました。

それではと、require_pathsを以下のようにしてみました。

s.require_paths = ["Miyako/lib"]

インストールは・・・OK! Miyako/libディレクトリにコピーされました。

早速テスト・・・エラーOTL

ライブラリの検索ディレクトリがMiyako/libのみになってしまい、

require 'Miyako/miyako_no_katana'

が、Miyako/Miyako/miyako_no_katana.so(.bundle)を検索したためのようです。

これならどうかと、require_pathsを以下のようにしてみました。

s.require_paths = ["lib/Miyako", "lib"]

まず、インストールは・・・成功。
続いて、テスト・・・成功!

こうすることで、実行時にエラーを出さずに実行できるようになりました。
いやー、良かった良かった。

# 実は、予想よりかなりあっさり解決したので拍子抜けしてます・・・(^^;

(追記)このgemインストールテストは、VMWareWorkstation+Ubuntu9.04上で行っています。