アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミング経験は、エクセルVBA程度です。
ネットで、Rubyでの描画を調べていたところ、下記のソースを発見。
cairoなるものが必要なようで、調べながら環境を整えてみました。
最初はターミナルから実行するとエラーが出ていましたが、現在はエラーが出ません。

環境は、MacOSX ruby 2.0.0p451

他の簡単なプログラム(helloworld表示など)は問題なく動きます。
エラーが出ずに実行できるということは、
画像の出力だけがうまく行っていないのでしょうか?

お知恵を頂けたら幸いです。

※以下、動かしたいプログラム(ネット上で発見したものです)

#!/usr/bin/env ruby

require 'cairo'

format = Cairo::FORMAT_ARGB32
width = 300
height = 200
radius = height / 3

surface = Cairo::ImageSurface.new(format, width, height)
context = Cairo::Context.new(surface)

context.set_source_rgb(1, 1, 1)
context.rectangle(0, 0, width, height)
context.fill

context.set_source_rgb(1, 0, 0)
context.arc(width / 2, height / 2, radius, 0, 2 * Math::PI)
context.fill

surface.write_to_png("hinomaru.png")

A 回答 (4件)

クリーンインストールではなくて、homebrewでインストールした部分だけの再インストールです。


私自身はhomebrewを一度インストールしたことが有りますが、私の目的には問題があったので消してしまいました。
従ってほとんどhomebrewについては理解できていません。

以前他の質問で回答したのですが、その時の原因がhomebrewで依存関係で必要なパッケージがインストールされていなくて動かないということでした。homebrewはなるべくシステムでインストールされているものを使うこと信条としているとのことで、たまたま依存パッケージの指定を忘れていたのかなと思ったりしていました。そのようなことが今回も有りそうな感じがしています。
インターネットで同じようなことがhomebrewでおこってるのか調べて対処する必要があるかもしれません。

MacPortsやFinkも同じようなことが起こりえるのですが、これらは逆にシステムでインストールされているものを信用しないという信条です。どちらが良いかは分かりませんが。

解決方法としては、homebrewで同じようなことがおこっていないか、その対処法をしらべること。
もう一つは、コンパイル済みのバイナリファイルをインストールしているなら、ソースファイルからコンパイルしてインストールする指定がhomebrewでできるのでしたら、それをやってみる方法です。これだと依存パッケージが抜けている場合にはエラーでインストールが止まってくれるはずです。バイナリファイルの場合は依存パッケージがなくても、パッケージ作成者が指定を忘れていてもとりあえずはインストールが成功するはずですので、実行するまで分からないことになりそうです。

その前に、homebrewでインストールされているパッケージを最新の状態にアッデートすれば解決するかも知れません。あくまでも作成者が気がついていたらですが。
    • good
    • 0
この回答へのお礼

う~む。わかったようなわからないような・・・。
当方の知識が少なすぎて、なんとなくしか理解できませんので、ちょっと勉強してみます。
教えて頂いた回答を元にして、アレコレ学習、試行してみます。
なんども御丁寧に有難うございました!

お礼日時:2014/08/28 09:00

>unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/cairo.bundle, skipping


このあたりはドキュメント関係のはずで、実行には関係ないと思いますので、無視してください。

rubyで実行して何かエラーメッセージがでませんか?
どうもcairoが依存するライブラリのインストールがうまできていない可能性が高いと思います。
homebrewで依存するライブラリをインストールするときにエラーを見逃していませんか?
ひとつひとつインストールし直すのも1つの方法ですが、依存ライブラリはかなり入り組んでいるので。
全部消してインストールをやり直すのは早いかもしれません。homebrewは掃除するのも大変ですが。

この回答への補足

何度も御丁寧に有難うございます!

ruby実行時のエラーは無いです。
他の単純なプログラムは普通に動きます。
hinomaru.rbも、エラーは出ません。
が、画像の出力が無いだけです。
というか、実行前となにも変わらない状態といったほうが適切でしょうか・・・。

cairoのインストールは過去に何度もエラーが出ました・・・。
ただ、先日教えて頂いた方法で、現在はうまくインストールできているように思われます。

全部消して再インストールですか・・・。
それも当方にはハードル高そうですね。
クリーンインストール(?)の方法も調べつつ、現状で動く方法も調べてみます・・・。

補足日時:2014/08/27 20:52
    • good
    • 0

お礼欄に書かれているメッセージ通りです。


どちらも正常にインストールできていません。
まず、下の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 として実行しています。
なぜ出来ないのでしょうか?

補足日時:2014/08/26 23:11
    • good
    • 0

こちらで質問欄のプログラムをそのまま実行してみましたが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)

です。
    • good
    • 0
この回答へのお礼

早速のご回答、有難うございます。
ただ、やっぱりうまく行かず、カレントディレクトリへのファイル作成もされません。

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.

どうしたもんでしょうか?
コンソールからのインストール実行、そもそもの基礎がないので、ネットで調べながらアレコレやっている状況です。

お礼日時:2014/08/26 13:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!