- ベストアンサー
Rubyでcairoを使って描画する方法
- Rubyでcairoを使って描画する方法をまとめました。
- 質問者はエクセルVBAのプログラミング経験があり、Rubyでの描画方法を調べていました。
- 質問者はMacOSXの環境でRuby 2.0.0p451を使用しており、画像の出力がうまく行っていないようです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
クリーンインストールではなくて、homebrewでインストールした部分だけの再インストールです。 私自身はhomebrewを一度インストールしたことが有りますが、私の目的には問題があったので消してしまいました。 従ってほとんどhomebrewについては理解できていません。 以前他の質問で回答したのですが、その時の原因がhomebrewで依存関係で必要なパッケージがインストールされていなくて動かないということでした。homebrewはなるべくシステムでインストールされているものを使うこと信条としているとのことで、たまたま依存パッケージの指定を忘れていたのかなと思ったりしていました。そのようなことが今回も有りそうな感じがしています。 インターネットで同じようなことがhomebrewでおこってるのか調べて対処する必要があるかもしれません。 MacPortsやFinkも同じようなことが起こりえるのですが、これらは逆にシステムでインストールされているものを信用しないという信条です。どちらが良いかは分かりませんが。 解決方法としては、homebrewで同じようなことがおこっていないか、その対処法をしらべること。 もう一つは、コンパイル済みのバイナリファイルをインストールしているなら、ソースファイルからコンパイルしてインストールする指定がhomebrewでできるのでしたら、それをやってみる方法です。これだと依存パッケージが抜けている場合にはエラーでインストールが止まってくれるはずです。バイナリファイルの場合は依存パッケージがなくても、パッケージ作成者が指定を忘れていてもとりあえずはインストールが成功するはずですので、実行するまで分からないことになりそうです。 その前に、homebrewでインストールされているパッケージを最新の状態にアッデートすれば解決するかも知れません。あくまでも作成者が気がついていたらですが。
その他の回答 (3)
- ki073
- ベストアンサー率77% (491/634)
>unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/cairo.bundle, skipping このあたりはドキュメント関係のはずで、実行には関係ないと思いますので、無視してください。 rubyで実行して何かエラーメッセージがでませんか? どうもcairoが依存するライブラリのインストールがうまできていない可能性が高いと思います。 homebrewで依存するライブラリをインストールするときにエラーを見逃していませんか? ひとつひとつインストールし直すのも1つの方法ですが、依存ライブラリはかなり入り組んでいるので。 全部消してインストールをやり直すのは早いかもしれません。homebrewは掃除するのも大変ですが。
補足
何度も御丁寧に有難うございます! ruby実行時のエラーは無いです。 他の単純なプログラムは普通に動きます。 hinomaru.rbも、エラーは出ません。 が、画像の出力が無いだけです。 というか、実行前となにも変わらない状態といったほうが適切でしょうか・・・。 cairoのインストールは過去に何度もエラーが出ました・・・。 ただ、先日教えて頂いた方法で、現在はうまくインストールできているように思われます。 全部消して再インストールですか・・・。 それも当方にはハードル高そうですね。 クリーンインストール(?)の方法も調べつつ、現状で動く方法も調べてみます・・・。
- ki073
- ベストアンサー率77% (491/634)
お礼欄に書かれているメッセージ通りです。 どちらも正常にインストールできていません。 まず、下のcairoの方ですが、 https://xquartz.macosforge.org からxquartzを入手、イントールしてからもう一度やってみてください。 rubygemsの方は、書き込む権限がないということです。 sudo gem install cairo としてみてください。
補足
有難うございます! xquartzをインストールしました。 その後、sudo gem install cairoもやりました。 これまでとちがう表示が出て、いかにも「動いている」感じです! ちなみに、sudo gem install cairoのあとは、以下のように表示されました。 Building native extensions. This could take a while... Successfully installed cairo-1.12.9 Parsing documentation for cairo-1.12.9 unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/cairo.bundle, skipping Installing ri documentation for cairo-1.12.9 1 gem installed ただ、実行してみると、やっぱり画像は作成されません。 再起動してから試みてもダメです・・・。 rubyのファイルはデスクトップのrubyフォルダに入れて有ります。 ターミナルでは、cd desktop/ruby としてから、ruby hinomaru.rb として実行しています。 なぜ出来ないのでしょうか?
- ki073
- ベストアンサー率77% (491/634)
こちらで質問欄のプログラムをそのまま実行してみましたがhinomaru.pngが正常に出来ていましたよ。 カレントディレクトリにファイルができているはずですが、もう一度確認してみてください。 こちらは OSX 10.9.4 MacPortsでインストールした ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-darwin13] cairo @1.12.16_2+x11 rubygemsでインストルした cairo (1.12.9) です。
お礼
早速のご回答、有難うございます。 ただ、やっぱりうまく行かず、カレントディレクトリへのファイル作成もされません。 cairoのインストールが出来ていないのではと、コンソールから、 gem install cairoを実行すると以下の様なエラーが出ます。 ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory. ただ、Macintosh HD>ライブラリ>Ruby>Gems>2.0.0>gems>cairo-1.12.9と有りますので、 cairoは使える状態で入っている(?)のかと思われます・・・。 (そもそも、その認識が違うのでしょうか?) ちなみに、MacPortsではなく、Homebrewが入っています。 コンソールからbrew install cairoとしても以下のエラーが出ます・・・。 cairo: Unsatisfied dependency: XQuartz 0.0.0 Homebrew does not package XQuartz. Installers may be found at: https://xquartz.macosforge.org Error: An unsatisfied requirement failed this build. どうしたもんでしょうか? コンソールからのインストール実行、そもそもの基礎がないので、ネットで調べながらアレコレやっている状況です。
お礼
う~む。わかったようなわからないような・・・。 当方の知識が少なすぎて、なんとなくしか理解できませんので、ちょっと勉強してみます。 教えて頂いた回答を元にして、アレコレ学習、試行してみます。 なんども御丁寧に有難うございました!