もしかして、未来のちびっこ達の心をがっつりつかむために OLPC 上のソフトウェア開発に野心を燃やしている方がいるかも知れないので、OLPC 開発について書きます。これは以前に書いた内容の更新版です。
エミュレータで OLPC
最初に雰囲気を知るためにエミュレータ上で OLPC のディスクイメージを試す事をお勧めします。 http://wiki.laptop.org/go/OS_images_for_emulation にいろいろな環境で試す方法が書いてあります。以前日記に VMWare で動かす方法も書きましたが、現在イメージにドライバが足りなくて VMWare だとネットワークが動かないようです。
開発環境を整える。
ここからは素人には難しい領域になります。上記のディスクイメージだと、本気でアプリケーションを作るには厳しいので、普通の Linux ディストリビューション上で開発環境を整えます。OLPC は Fedora Core ベースなので、Fedora Core がお勧めですが、他にも結構いろんな環境で開発出来るみたいです。ここでは、Fedora Core 6 で開発する方法を書きます。
まず、http://wiki.laptop.org/go/Sugar_on_Fedora_Core_6 を参考に開発に必要物を事前にそろえます。ちょっとしたコツを書くと、以下のようなスクリプト書いて、例えば sugar_prerequired.sh とでも名付けておき、
yum -y update yum -y groupinstall "Development Tools" yum -y groupinstall "X Software Development" yum -y install intltool nspr-devel expat-devel ncurses-devel \ docbook-style-xsl \ libxml2-devel glib2-devel gettext-devel gtk2-devel gtk-doc \ darcs gstreamer-devel gstreamer-plugins-base-devel \ fribidi fribidi-devel enchant enchant-devel \ libxslt-devel libxslt-python GConf2-devel libgsf-devel \ xorg-x11-server-Xephyr \ git sqlite sqlite-devel speex-devel openssl-devel
$ time sudo sh sugar_prerequired.sh
のようにすると一晩のうちに揃います。(一時間以上はかかると思います)。yum に -y を付けて余計な事を聞かれないようにするのと、time で時間を計っておくのが心理的なコツです。
つぎに、sugar 本体のビルドです。これには http://wiki.laptop.org/go/Sugar_with_sugar-jhbuild を参考に作業を進めます。まず sugar-jhbuild を取得します。
$ git-clone git://dev.laptop.org/sugar-jhbuild
OLPC 環境である sugar は、たくさんのソフトウェアに依存するため、この sugar-jhbuild を通して他のソフトウェアをビルドする事になっています。次に、sugar 本体のビルドを行いますが、これも以下のようなスクリプトを sugar_build.sh とでもしておいて、
./sugar-jhbuild update ./sugar-jhbuild build-base ./sugar-jhbuild build
次のように実行すると寝てる間にビルドされます(二晩くらいかかる)。
$ cd sugar-jhbuild
$ time sh ../sugar_build.sh
たぶん configure でエラーが出ます。エラーが出ると jhbuild は作業を止めてどうするか聞いてきますので、別のターミナルを開け(私は screen を愛用しております)。config.log の結果を元に足りないライブラリをインストールします。これが素人にはお勧め出来ない理由です。また、どういうことかこの作業には X端末が必要なので、X を立ち上げておいてください。
ビルドが終わると、いよいよ実行です。
- ./sugar-jhbuild run # sugar 全体を実行
- ./sugar-jhbuild run etoys # etoys だけを実行
sugar 終了は alt+q です。焦って ctrl+c で止めると止まらないサービスがあって二度めの起動がうまくいきませんので注意してください。