プログラミング経験は、エクセル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")
No.4ベストアンサー
- 回答日時:
クリーンインストールではなくて、homebrewでインストールした部分だけの再インストールです。
私自身はhomebrewを一度インストールしたことが有りますが、私の目的には問題があったので消してしまいました。
従ってほとんどhomebrewについては理解できていません。
以前他の質問で回答したのですが、その時の原因がhomebrewで依存関係で必要なパッケージがインストールされていなくて動かないということでした。homebrewはなるべくシステムでインストールされているものを使うこと信条としているとのことで、たまたま依存パッケージの指定を忘れていたのかなと思ったりしていました。そのようなことが今回も有りそうな感じがしています。
インターネットで同じようなことがhomebrewでおこってるのか調べて対処する必要があるかもしれません。
MacPortsやFinkも同じようなことが起こりえるのですが、これらは逆にシステムでインストールされているものを信用しないという信条です。どちらが良いかは分かりませんが。
解決方法としては、homebrewで同じようなことがおこっていないか、その対処法をしらべること。
もう一つは、コンパイル済みのバイナリファイルをインストールしているなら、ソースファイルからコンパイルしてインストールする指定がhomebrewでできるのでしたら、それをやってみる方法です。これだと依存パッケージが抜けている場合にはエラーでインストールが止まってくれるはずです。バイナリファイルの場合は依存パッケージがなくても、パッケージ作成者が指定を忘れていてもとりあえずはインストールが成功するはずですので、実行するまで分からないことになりそうです。
その前に、homebrewでインストールされているパッケージを最新の状態にアッデートすれば解決するかも知れません。あくまでも作成者が気がついていたらですが。
う~む。わかったようなわからないような・・・。
当方の知識が少なすぎて、なんとなくしか理解できませんので、ちょっと勉強してみます。
教えて頂いた回答を元にして、アレコレ学習、試行してみます。
なんども御丁寧に有難うございました!
No.3
- 回答日時:
>unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/cairo.bundle, skipping
このあたりはドキュメント関係のはずで、実行には関係ないと思いますので、無視してください。
rubyで実行して何かエラーメッセージがでませんか?
どうもcairoが依存するライブラリのインストールがうまできていない可能性が高いと思います。
homebrewで依存するライブラリをインストールするときにエラーを見逃していませんか?
ひとつひとつインストールし直すのも1つの方法ですが、依存ライブラリはかなり入り組んでいるので。
全部消してインストールをやり直すのは早いかもしれません。homebrewは掃除するのも大変ですが。
この回答への補足
何度も御丁寧に有難うございます!
ruby実行時のエラーは無いです。
他の単純なプログラムは普通に動きます。
hinomaru.rbも、エラーは出ません。
が、画像の出力が無いだけです。
というか、実行前となにも変わらない状態といったほうが適切でしょうか・・・。
cairoのインストールは過去に何度もエラーが出ました・・・。
ただ、先日教えて頂いた方法で、現在はうまくインストールできているように思われます。
全部消して再インストールですか・・・。
それも当方にはハードル高そうですね。
クリーンインストール(?)の方法も調べつつ、現状で動く方法も調べてみます・・・。
No.2
- 回答日時:
お礼欄に書かれているメッセージ通りです。
どちらも正常にインストールできていません。
まず、下の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 として実行しています。
なぜ出来ないのでしょうか?
No.1
- 回答日時:
こちらで質問欄のプログラムをそのまま実行してみましたが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.
どうしたもんでしょうか?
コンソールからのインストール実行、そもそもの基礎がないので、ネットで調べながらアレコレやっている状況です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CloverをインストールしたUSBメ...
-
Windows Storeを使わずに付箋を...
-
AutoCAD lt 2006インストールで...
-
昔のゲーム(95,98対応)...
-
ActiveXコントロールのインスト...
-
.NET Frameworkがコントロール...
-
iniファイル読み込み失敗という...
-
PC版GTA4が起動できません
-
いきなりPDF professional3に...
-
AnyDVDとレジストリKey
-
SIDとSERVICE_NAMEの違いとは?
-
ORA-12170のエラーについて
-
クラスタリングとレプリケーシ...
-
ノートンのパッチ適用?
-
東方紅魔郷
-
正しいSQLなのに「ORA-00936: ...
-
データソース名および指定され...
-
Oracle11g SQLPlusログインにつ...
-
SQLServer 2008のインスタンス...
-
バージョンの"i"とか"g"とかっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.NET Frameworkがコントロール...
-
Windows Storeを使わずに付箋を...
-
CloverをインストールしたUSBメ...
-
無料プラグインSSD5について教...
-
WiFi環境があればTikTokLiteは...
-
PCゲーム Hard☆Love☆Life
-
イラストレーターで数式を表現...
-
AnyDVDとレジストリKey
-
一太郎ダウンロード版と箱に入...
-
ドミノサーバーって?
-
Quicktimeがインストールできない
-
Windowsインストーラーmsiファ...
-
VNCについて
-
iniファイル読み込み失敗という...
-
e-photo
-
ファイルの暗号化でフリーソフ...
-
いきなりPDF professional3に...
-
オートメーションエラー(開発...
-
VMware player15にwindows98SE...
-
Adobe CS5.5 インストールエラー
おすすめ情報