iPod touchでRubyを動かす

以下の作業は自己責任でお願いいたします。

Installer.appをインストールする

まずはRubyを入れるためにInstaller.appをiPod touchをインストールします。 基本的に以下のリンク通りに作業すれば問題ないはずです。

iPod Touch jailbreak for Windows iPod Touch jailbreak for OSX

必要なアプリのインストール

Installer.appから以下のアプリをインストールします。
  • System > BSD Subsystem
  • System > MobileTerminal
  • Sources > Community Sources
BSD Subsystemを入れることでBSD由来のコマンドが使えるようになります。今回に限らずtouchをいじくり倒すのに必須のアプリかと。MobileTerminalはその名の通りTerminalです。Community SourcesはInstaller.appからインストールできるアプリが増えます。Rubyもこのなかに含まれています。

Rubyのインストール

Community SourcesをインストールすることでInstaller.appのアプリ一覧にRubyが増えているはずなので、そこからRubyをインストールします。

Rubyにパスを通す

Rubyにパスを通すために.zshenvをSSH経由で作成します。

% ssh -l root iPodtouchのIPアドレス
root@IPアドレス password:パスワードを入力

vi /Applications/.zshenv

1: export PATH=/opt/iphone/bin:$PATH

次にiPod touchのMobileTerminalから今つくった.zshenvを適用させます。

# source /Applications/.zshenv

# ruby -v

ruby 1.8.6 (2007-03-13 patchlevel 0) [arm-darwin]

どうやら.zshenvだとMobileTerminalを閉じるたびに設定がリセットされる模様。毎回Terminalを起動させる度にsourceするのもアレなのでlnコマンドでシンボリックリンクを作ることで対応します。

シンボリックリンクはSSH経由でrootで作成します。

% ssh -l root iPodtouchのIPアドレス
root@IPアドレス password:パスワードを入力

ln -s /opt/iphone/bin/ruby /bin/ruby

これでMobileTerminalを閉じたあとでもRubyへのパスが通っているはずです。ただこの方法だとPerlやPHP、Pythonをインストールしたときもシンボリックリンクを用意しなければいけないですし、irbのシンボリックリンクも用意する必要があります。(irbはなんかエラーでてつかえないけど)

できれば、PATHの設定をしてやった方が色々手間がないはずなので、やり方わかる人いたら教えていただけるとありがたいです。

オマケ

せっかくSSHを使えるようにしてあるんだからsshsでマウントすると便利ですよ。

追記:irbがなくてもボクたちにはeval.rbがあるじゃないか!

irbは動かないけど、eval.rbならもしかして・・・?

ってことで試してみましたよ。SSHでeval.rbをtouchに送って実行!

できた!!

eval.rbはサンプルとしてRubyにくっついてると思うから探せばあると思う。もしわからなければソースをダウンロードして、解凍すると/sample/eval.rbがあるからそれを使えばいいと思います。

追記

追記 2007/10/26

[iPod touch][プログラミング]iPod touchでRubyを使うのはちょっと厳しいかも irbが動かない件をfaultierさんが検証していた様です。irbだけじゃなくて標準ライブラリもダメだったのね・・・