田園都市技術屋online日記

アクセスカウンタ

zoom RSS ruby de wxruby:SnowLeopardでハマる (Terminal編)

<<   作成日時 : 2010/02/14 13:44   >>

ブログ気持玉 0 / トラックバック 2 / コメント 0

Windowsのnetbeans上でwxrubyで遊んでいたら使い勝手が良かったので、SnowLeopardでも…と思ったらみごとにハマる。 以下脱出用のメモ。

そもそもはこんなコードを動かそうとして…
rwxtest.rb



require "rubygems"
require 'wx'

class MyApp < Wx::App
private

def on_init
Wx::message_box('Hello World!')
return false
end
end

MyApp.new.main_loop



ruby wxtest.rb

で以下のエラーを吐いてくれた。

no suitable image found. Did find: (LoadError)

どうも最初の require 'wx' から失敗しているようだ。

いろいろと情報をあさった結果、SnowLeopardに変わったときrubyの-archがi386→x86_64になっている模様。  wxwidgets側はi386なのでx86_64のイメージが無い!とミスマッチを主張しておるようだ。 SnowLeopardのアプリは当然UniversalBinaryなので正確にはi386のバイナリにx86_64のバイナリが追加のはずだが。

Ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]

確認するとバージョン表示からして[universal-darwin10.0]だ。で、i386はどこ行った?と思ってfileコマンドで調べてみると



./ruby: Mach-O universal binary with 3 architectures
./ruby (for architecture x86_64): Mach-O 64-bit executable x86_64
./ruby (for architecture i386): Mach-O executable i386
./ruby (for architecture ppc7400): Mach-O executable ppc



やはりちゃんとi386は中にいる。 ppcまで律儀にちゃんといる。
ここで起動するバイナリはどーなってんだよ?と言う話になって、さらに情報をあさるとSnowLeopardはx86_64が使えるならx86_64がデフォで起動という仕様らしい。

ならば「情報を見る」から「32bitモードで開く」にチェックだ…
http://ascii.jp/elem/000/000/457/457349/index-2.html
と思ったらチェックボックスがない…笑。 折角、不可視ディレクトリまで見えるようにFinderいじったのに。 調べてみるとUnix実行ファイルは設定できないっぽい。  というかこのチェックはFinder以外(例:Terminal)から立ち上げるときはまるっきり無視。  Finderがこの辺りの細かいことをフォローしているようで、「32bitモードで開く」チェックは実行ファイルというよりFinderに対しての設定らしい。

少々気持ちが折れたがもう一度情報をあさると、今度はarchコマンドが使えるっぽいのを見つける。 実行ファイルのアーキテクチャの表示コマンドと思っていたら、実行アーキテクチャの選択もできるらしい。 確かにman archでそんなことが書いてある。 気を取り直してスクリプトを書いて実験してみる。

ruby32



#!/bin/sh
arch -i386 ruby $*


chmodで実行権を付加してTerminalから

./ruby32 wxtest.rb

おお動いた! 「Hello World!」(笑)。

ここでさらに気を取り直してnetbeansのセットアップに取りかかる。 「rubyプラットホームマネージャ」にこのスクリプトを認識させればOKだったのだが。

「有効なrubyインタプリタではないようです」

悲しいダイアログ。 そりゃそーだけど。 また振り出しに戻ってしまった。
 (netbeans力技編につづく)


テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(2件)

タイトル (本文) ブログ名/日時
プラダ トート
ruby de wxruby:SnowLeopardでハマる (Terminal編) 田園都市技術屋online日記/ウェブリブログ ...続きを見る
プラダ トート
2013/07/06 06:21
エアマックス 2013
ruby de wxruby:SnowLeopardでハマる (Terminal編) 田園都市技術屋online日記/ウェブリブログ ...続きを見る
エアマックス 2013
2013/07/08 12:54

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
ruby de wxruby:SnowLeopardでハマる (Terminal編) 田園都市技術屋online日記/BIGLOBEウェブリブログ
文字サイズ:       閉じる