自分インストールの ruby でバイナリパッケージの RubyCocoa を使う
バイナリパッケージをインストールしたんだけど、% ruby fontnames.rb で "no such file to load" て言われるよ
との質問。ruby のバージョンが 1.8.4 て書いてあるので、自分でインストールした ruby だなということがすぐにわかった。情報あるといいよな。
原因は、次のとおり。RubyCocoa のバイナリパッケージでは、ライブラリおよび拡張ライブラリはシステム標準の /usr/bin/ruby に合わせてインストール場所が設定してある。だけど、自分で最新の ruby をインストールしていたりすると、ライブラリの場所が異なる( /usr/local/lib/ruby など)ために、コマンドラインの ruby からは 'osx/cocoa' の require が失敗するが、アプリケーションは動く、という状態になってしまう。
ソースからビルド してもらうのがいちばん簡単な解決策なのだけど、今回は新しい方法を考えた。
- ライブラリ類を自分の ruby のライブラリインストール先にコピーする
というもの。 libruby のバージョンが異なるからダメだろうなと思っていたのだけど、試してみたら問題なかったからまあいいやという感じで。
% sudo cp -R /usr/lib/ruby/site_ruby/1.8/osx \ `ruby -r rbconfig -e "p Config::CONFIG['sitedir']"` % sudo cp /usr/lib/ruby/site_ruby/1.8/powerpc-darwin8.0/rubycocoa.bundle \ `ruby -r rbconfig -e "p Config::CONFIG['sitearchdir']"`
でも、こんなことをせずに DarwinPorts あたりのパッケージ管理システムにおまかせしてしまうのが、いちばんのオススメ。 RubyCocoa は rb-cocoa という名前で登録されてる。
| 固定リンク
最近のコメント