SL-A300にRubyをインストールしてみる

概要

まぁ、とりあえず(笑)Ruby入れな…ということで入れてみました。

2002/09/26追記:
一言にかいたように、ここよりもれろれろさんのページを参考にした方がよいかも。

  1. 情報を探す
    とりあえず既に入れてる人の情報がないか探してみる…。
    [ruby-talk]のログをあさったら
    1. http://www.caliban.org/ruby/ruby-zaurus.shtml
    2. http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/46111
    なんてのを発見。
  2. で、いずれも 1.7.x(開発版)なんですけど…
    安定版(1.6.x)が欲しかったんで上記 1-2 の zruby.rb を 安定版で試してみようと思うが、
    など、そのままではうまくいかなかったんでスクリプトを改造…で、実行ファイル出来た!
  3. SL-A300にインストール
    とりあえず展開してパス通して…でうまくいったかと思いきや、
    単体では動くものの拡張ライブラリの類が読み込めない…。
    どうやらライブラリ読み込みのパスがmake install時のパスで 固定されてるっぽいので環境変数RUBYLIBを設定してごまかす
  4. 完了!
    無事動くようになってめでたしめでたし。

makeする (PC上のLinux環境で行う)

  1. 開発環境のセットアップ
    まずは「Zaurus宝箱Pro」から開発環境を落としてきてインストール。最低限
    [SLシリーズ関連 開発ツール一覧のページ]→<Linux関連 開発ツール>
    のところにあるツールを入れておけばよいはずです。
    あと、当然ながらmakeするPC上で動作するrubyが入っている必要があります。
    (最近のディストリビューションなら標準で入っているとは思いますが…)
  2. zruby.rbにパッチをあてる
    上記URLからzruby.rbを落としてくる。で、以下のパッチをあてる。
    zruby.rb.diff
    zruby.rbとzruby.rb.diffを同じディレクトリにおいて、あとはコマンドラインから
    % patch -p0 < zruby.rb.diff
    としてパッチをあてます。
  3. rubyのソース本体を展開する
    公式ページからお好みのバージョンのruby本体ソースをとってきて任意の場所に展開します。
    以下は、「stable snapshot(ruby-1.6.7 20020912)」を使った場合で説明します。
    % tar zxvf stable-snapshot.tar.gz
    <略>
    % ls -F
    ruby/
    stable-snapshot.tar.gz
    zruby.rb
    zruby.rb.diff
    % 
    
    てな感じ。
  4. makeする (2002/09/22 最初の行のコマンドが間違ってたので修正)
    % ruby zruby.rb ruby
    <略>
    % ls -F
    ruby/
    stable-snapshot.tar.gz
    zruby.rb
    zruby.rb.diff
    zruby.tgz
    %
    
    完成!(zruby.tgzというファイルがそれです)
    で、一応私がmakeしたバイナリをおいておきます。基本的に未保証です。
    ruby-1.6.7-20020912-arm-linux.tar.gz

動かしてみる (SL-A300上で行う)

  1. ファイルをコピー、展開する
    どんな手段(ザウルスドライブ経由、SD or CFカード経由 etc.)を使ってもいいので
    SL-A300上にできあがったバイナリファイルをコピーして、アーカイブを展開します。
    以下の例では
    /mnt/card/Documents/Install_Files/ruby-1.6.7-20020912-arm-linux.tar.gz
    にアーカイブをおいて、
    /mnt/card/QtPalmtop/
    以下に展開しました。
    # uname -a
    Linux sla300 2.4.13-ac5-rmk2-cotulla.1 #1 2002年 8月 30日 金曜日 20:38:31 JST armv5l unknown
    # pwd
    /mnt/card/QtPalmtop
    # tar zxvf /mnt/card/Documents/Install_Files/ruby-1.6.7-20020912-arm-linux.tar.gz
    <略>
    # ls -F
    apps/
    bin/
    demo/
    etc/
    help/
    i18n/
    java/
    lib/
    pics/
    tmp/
    zruby/
    # 
    
    なお、この辺から先の作業をSL-A300上でやるのは(出来なくはないが)面倒だと思います。
    私はWindowsマシンからSSHでSL-A300にログインしてやりました。
  2. 環境変数の設定(その1)
    で、あとはパスを通して完成!と思いきや…
    # PATH=$PATH:/mnt/card/QtPalmtop/zruby/bin
    # ruby -v
    ruby 1.6.7 (2002-09-12) [arm-linux]
    # ruby -r kconv -e 'p Kconv'
    ruby: No such file to load -- kconv (LoadError)
    # 
    
    あらら、惜しい。
    # ruby -e 'puts $:'
    /tmp/zruby/lib/ruby/site_ruby/1.6
    /tmp/zruby/lib/ruby/site_ruby/1.6/arm-linux
    /tmp/zruby/lib/ruby/site_ruby
    /tmp/zruby/lib/ruby/1.6
    /tmp/zruby/lib/ruby/1.6/arm-linux
    .
    # 
    
    というわけでライブラリ読み込みパスが、
    make時に一旦仮インストールしたパスに固定されちゃってるようです。
    # 上記の1.7.xを入れてるサイトではそんな記述は見かけなかったので、
    # 開発版では大丈夫なんでしょうかね?
  3. 環境変数の設定(その2)
    とりあえず環境変数RUBYLIBを設定してごまかすことにする。
    (もっとスマートなやり方が有るのかもしれませんが調べるのが面倒だったので…)
    というわけで、以下のようなシェルスクリプトを作成。
    rubyenv.sh (2002/09/22 ちょっと間違ってたので修正)
    これを
    # source rubyenv.sh
    
    として使うなり、「/home/root/.profile」につっこむなりして使うことにする。
    で、こんどこそ無事動くようになったはず。
    # ruby -v
    ruby 1.6.7 (2002-09-12) [arm-linux]
    # ruby -r kconv -e 'p Kconv'
    Kconv
    # ruby -e 'puts $:'
    /mnt/card/QtPalmtop/zruby/lib/ruby/site_ruby/1.6
    /mnt/card/QtPalmtop/zruby/lib/ruby/site_ruby/1.6/arm-linux
    /mnt/card/QtPalmtop/zruby/lib/ruby/site_ruby
    /mnt/card/QtPalmtop/zruby/lib/ruby/1.6
    /mnt/card/QtPalmtop/zruby/lib/ruby/1.6/arm-linux
    /tmp/zruby/lib/ruby/site_ruby/1.6
    /tmp/zruby/lib/ruby/site_ruby/1.6/arm-linux
    /tmp/zruby/lib/ruby/site_ruby
    /tmp/zruby/lib/ruby/1.6
    /tmp/zruby/lib/ruby/1.6/arm-linux
    .
    # 
    
    動いた!
    $:に余分なものがついているのが多少気持ち悪いけど…ま、いっか。

所感

本当はもっとあっさりいくと思ってたのに、
以外と罠が多かったかな?という感想です。
「.ipkはどうした!」という声も聞こえてきそうですが気が向いたらそのうち…。


back