Site Top
ruby Top

□rvm
・PATHを通す
・rvmsudoコマンド

□Glade3
・rubyで読み込む
・GtkBox

□rubyでCGI
・formデータ受け取る
・CGIをオフラインで動かす
拙作のしょーもないサンプル

・Glade3fixer.rb
・Firefox_killer.rb
・Link_creator.rb
・unzip_sjis.rb
・mp3conv.rb
・URLdecoder.rb


番外編

・MacOSX10.4でruby

uw_yocida@mac.com
uw_yocida(twitter)

ー MacOSXにrubyをインストール(成功編:改訂版) ー
うちのMac mini(PPC)のMacOSX10.4.11環境に、無事rubyをインストールできた時のメモ。

□rvmでインストール編

最初、rvmをインストールする際、公式サイトや他のサイトに書いてある方法を色々と試してみたけれども、どれを使ってもSyntaxエラーとかが出て上手くいかず、Syntax(構文)エラーってどういうこと!?としばらく悩んだ末、ひょっとして使用しているbashが悪い?bashのバージョンが古かったりする?というところに思い至り、macportsを利用して、

とかやって、bashのバージョンを新しくしてから、公式サイトにある方法、

を試してみたところ、無事rvmのインストールに成功。
その後、ターミナルで、

とやると、rvmコマンドは無事に認識された。

というか、他のサイトによく書いてある.bashrcファイルなどに

を追加する……というのをやるとターミナルを起動する度にエラーが表示されて上手くいかず、Xubuntuでは上手くいったのになんで?と、ここでもまた随分悩んでしまった。

rvmコマンドさえ使えるようになれば、あとはこっちのもんだ!と思ったら、今度はrubyのインストールの際に
gcc-4.2:コマンドが見つからない」というエラーが出て、インストール作業が中断。

ネットで調べてみると、MacOSX10.4では、rvmでruby-1.9.3をインストールしようとするとエラーが出て、インストールできないらしいことが書いてあったので、ruby-1.9.2をインストールしてみることにする。

とやって、もしエラーでインストールできない場合は

とやると上手くいくかもしれない。

無事ruby-1.9.2-p320がインストールされるのだけれども、ここでまたひとつ問題が発生。

rvm use」が上手く動かないようで、インストールしたrubyに切り替えることが出来ない。

実のところ、よく分かっていないんだけれども、ターミナルを起動した時に、login shellとかいうので起動していないとrvm useが機能しないらしくて、ターミナルで、

とか打つことで、login shellの状態になるらしい……?

でもターミナルを起動する時に、毎回「bash -l」とか打つのは面倒なので、ターミナルアプリの環境設定で、
このコマンドを実行する」を選んで、macportsでインストールしたbashを「-l」付きで実行するように「/opt/local/bin/bash -l」と書き換えてみた。

ついでに、.bashrcファイルに
という一文を追加。
さらに、.bash_profileファイルに、

という一文を追加して、ターミナルで新規シェルを開く度に.bash_profileが読み込まれて、.bash_profileの設定から.bashrcが読み込まれて、rvmがすぐに使えるようになるハズ。

もっとキレイな.bashrcや.bash_profileの書き方があるような気もするので、この辺分かる方は自分で適当に書き換えてください。

あとは、rvmでインストールしたrubyをデフォルトで使いたいなら、

とかやればOK。

システム標準のrubyに戻したい場合は、

でMacOSXに標準でインストールされているruby、もしくはmacportsでインストールしたrubyに切り替わる……ハズ。

□macportsでインストール編

macportsのインストールの仕方とかは、他所様のサイトに丸投げいたします(おい)

取り敢えず、macportsでruby本体を検索するために、
とかやって、表示されるリストの中から、ruby本体らしきものを見つけます。

この記事を書いている時点での最新版は、「ruby19」(ruby-1.9.3-p194)のようですので、

と打って、rubyのインストールを開始します。

ちなみに、「sudo port install ruby」とか「19」の部分を省いてしまうと、1.8系のrubyが入ってしまいますので、ご注意を。

あとはしばらく待っていれば、rubyのインストールは完了するハズです。

ただし、ruby19をインストールした場合、rubyスクリプトを実行するためのコマンド名が、

というように「ruby1.9」になってしまいます。
また、「gem」コマンドも「gem1.9」コマンドを使わないといけません。

MacOSXにはあらかじめ1.8系のrubyが入っていることも多いので、これとコマンド名が被らないようにするため?なのかもしれませんが、毎回「ruby1.9」や「gem1.9」と打つのはちょっと面倒ですし、特にgemコマンドについては、「gem1.9」とするところをうっかり「gem」と打ってしまうと、1.9系のrubyを変更したつもりがなにも変わらない上に、1.8系のrubyを変更してしまうことにもなりかねないので、コマンド名から「1.9」を取り除いて使えるようにしようと思います。

それには、MacOSX標準で入っているrubyのディレクトリにまず移動、
すでに1.8系のrubyが入っている場合は、「ruby」というファイルが存在するハズなので、まず1.8系のrubyを、
とかmvコマンドを打って、コマンド名を「ruby18」に変更してしまいます。

そして、「ruby」コマンドが打たれた時、macportsでインストールした「ruby1.9」が実行されるように、

と打って、「ruby」という名前のシンボリックリンクを作り、「ruby」コマンドで「ruby1.9」が実行されるようにしちゃいます。

MacOSX標準のrubyの場合みんなそうなのか分かりませんが、うちの環境ではここにgemは入っていなかったので、次にmacportsでインストールされたruby1.9が入っているディレクトリに、

で移動して、ここにも、
でシンボリックリンクを作成。

このディレクトリには「gem1.9」が入っているハズなので、これも同様のやり方で、

とかやって、「gem」コマンドで実行できるように変更しちゃってます。

「ruby -v」や「gem -v」と打って、「ruby1.9 -v」や「gem1.9 -v」と打った時と同じバージョン表示が返ってくれば、たぶん大丈夫だと思われます。

でもこの方法が本当に正しいやり方なのかどうかは、ちょっと分からないです(爆)

それと、もしMacOSX標準のrubyで動作しているソフトがあった場合、動作の途中でrubyの環境が変わることになるので、動作がおかしくなるかもしれません。
一度ログアウト、もしくはMacOSXを再起動した方が良いと思います。
ついでというか、私にとってはrubyでgtk2が使えることが、一番の目的なんですが……。

□gemコマンドでgtk2のインストール

その前に、やはりmacportsでgtk2をインストールしておかないといけないみたい。
うちの場合は、

というように、「configure.compiler=gcc-4.0」というオプションを付けてインストールしました。
このオプションを付けないと、gtk2をインストールする際に、cairoとかいうのも一緒にインストールされるんですが、このcairoがapple-gcc42というのを一緒にインストールしようとして、apple-gcc42のインストールで失敗して、gtk2のインストールも失敗してしまうみたいです。

なのでgtk2に限らず、他にもapple-gcc42をインストールしようとしてインストールに失敗するものがあったあった場合は、macportsに「gcc-4.0でコンパイルしてねん(apple-gcc42は使わないでねん)」とハッキリ分からせるために、「configure.compiler=gcc-4.0」を付けると、上手くインストールできる場合があるみたいです。

で、無事にmacportsでgtk2のインストールが完了したら、いよいよruby用のgtk2をインストールする作業に入ります。

何度も同じ失敗をした末にたどり着いた結論は、macportsでrubyをインストールした場合は、

rvmでrubyをインストールした場合は、

でgtk2をインストールするということ。

普通に「gem install gtk2」とかやると、「MACOSX_DEPLOYMENT_TARGET」とかいうのが「10.1」にsetされている?みたいなエラーメッセージが表示されるので、うちはMacOSX10.4だから「MACOSX_DEPLOYMENT_TARGET=10.4」にすればいける……のか?と、かなり半信半疑で試してみたら上手くいってしまったという、全く動作原理を理解しないままで使っておりますので、試される方はご注意を。

ちなみに、macportsでgtk2をインストールする際、
で確認すると、下のようなインストールのオプション?が選べるらしいんですが、
gtk2 has the variants:
no_x11: Disable X11 support
quartz: Support for native Mac OS X graphics
* conflicts with x11
* requires no_x11
universal: Build for multiple architectures
[+]x11: Enable X11 support

試しに、

というように、X11を使わず、MacOSXのquartzで描画する設定でgtk2のインストールを試みたところ、ウィンドウやボタンなどはMacOSX風の外観で表示されるものの、日本語の表示に問題があるのか、動作が固まってしまうことが多くて、ちょっと実用的ではなかった上に、gtk2を一度アンインストールして、デフォルトのオプションでgtk2を再インストールしようとしても上手くいかなくなってしまい、macportsでインストールしたものを全てアンインストールして、またrubyのインストールからやりなおすハメに陥ってしまったので、あまりオススメいたしません。