OS X Tiger(10.4.10)上のrubyでrcairoを利用しようとしています。

macportsでcairoをインストールしたのですが(1.4.10_0)
gem install cairo
を実行したところ
checking for caoro version(>= 1.2.0)
extconf.rbを失敗します。
どのようにすればインストールできるのかご存じの方教えてください。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2007/11/07 19:33:30
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:moro No.1

回答回数23ベストアンサー獲得回数10

ポイント100pt
$ gem install cairo -- --with-cairo-dir=/opt/local 

でどうでしょう。

非標準の場所に入れたライブラリを使うには--with-hgoe-dir=なんかで指定します。

gemへの引数はなし( -- )であることに注意してください。(--with-hoge-dirは拡張ライブラリをビルドする際のextconfなんかへのオプションになります。)

id:dambiyori

ご解答ありがとうございます。

なるほど、と思って試してみたのですが、状態は変わらず駄目でした。

/opt/localの中をのぞいてみたら

/opt/local/lib にlibcairoで始まるファイルが入っていて

/opt/local/include/cairo にヘッダファイルが入っているようです。

2007/11/04 22:26:09

その他の回答2件)

id:moro No.1

回答回数23ベストアンサー獲得回数10ここでベストアンサー

ポイント100pt
$ gem install cairo -- --with-cairo-dir=/opt/local 

でどうでしょう。

非標準の場所に入れたライブラリを使うには--with-hgoe-dir=なんかで指定します。

gemへの引数はなし( -- )であることに注意してください。(--with-hoge-dirは拡張ライブラリをビルドする際のextconfなんかへのオプションになります。)

id:dambiyori

ご解答ありがとうございます。

なるほど、と思って試してみたのですが、状態は変わらず駄目でした。

/opt/localの中をのぞいてみたら

/opt/local/lib にlibcairoで始まるファイルが入っていて

/opt/local/include/cairo にヘッダファイルが入っているようです。

2007/11/04 22:26:09
id:moro No.2

回答回数23ベストアンサー獲得回数10

ポイント100pt

うーん、Leopardではありますが、手元では問題なくインストールできていますね。

可能であればエラーログを見たいです。

$ gem install --debug cairo -- --with-cairo-dir=/opt/local

した上で ruby extconf.rb install から下のログがあれば貼っていただけますか?

あと、思いつくエラーの原因としては

1. gemをインストールする場所のパーミッション

$ sudo gem install --debug cairo -- --with-cairo-dir=/opt/local

2. universal binaryを作ろうとしている

OS X標準のRubyで拡張ライブラリを作ろうとすると往々にしてこれが原因で落ちるみたいです。

cairoとその付随物を +universalで入れ直す、もしくは自分でビルドしたRuby(--enable-shared必須)を使うのが良いかと思います。

Tigerでは付属のRubyがやや古い(1.8.4)こともあり、私も普段は自分で入れたRubyを使ってます。

id:dambiyori

お返事遅くなって申し訳ありません。

ログを見ていただけるとの事、本当にありがとうございます。

ログと各種バージョン情報等をまとめてテキストファイルにしてアップロードしました。

ちなみにrubyはMacPortsでインストールしてあります。

http://dambiyori.sakura.ne.jp/hatena/cairoInstallLog.txt

スーパーユーザでないとパーミッションで

引っ掛かるのは確認してましたのでsudoで実行しました。

どうぞ、よろしくお願いします。

2007/11/06 22:05:48
id:moro No.3

回答回数23ベストアンサー獲得回数10

ポイント100pt

詳細なログありがとうございます。

でもうーん、分からない。。申し訳ないです。

extconf.rbを読みながらなんでうまくいかないか考えてみたんですが、pkg-configの出力はどうなりますか?

$ pkg-config --libs cairo 
-L/opt/local/lib -lcairo -lfreetype -lz -lfontconfig -lexpat -lpng12  

もしインストールされていないようであれば、MacPortsでpkgconfigを入れてみてください。

id:dambiyori

できました!

/opt/bin/の前に/sw/bin/にpathが切ってあったのが原因でした。

以前Finkをインストールしたのをすっかり忘れてました。

pkg-configを実行してなんかおかしいなーと思って

whichで見てみたらそっちを見てて気づきました。

丁寧なご回答どうもありがとうございました。

2007/11/07 19:29:51
  • id:dambiyori
    結果的にどうしようもないことに付き合わせちゃうことになって申し訳ありませんでした。>id:moro様
    ただ、1のご解答等、この質問抜きに参考になりました。どうもありがとうございます。
  • id:moro
    いえいえ。わたしもextconf.rbやmkmf.rbを読むいい機会で、とても勉強になりました。
    あとこんなに大量のポイントありがとうございました。大事に使わせていただきます。

    今後ともよろしくお願いします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません