これはOSv Advent Calender 2+1日目の記事です.
グアムのハワイのワイキキビーチで書き上げたからまだ12/2という"てい"でよろしくおねがいします.
〜
OSvのCRuby移植担当してたoruminです.
OSv1日目の記事で@syuu1228さんが説明されていた通り,現在OSvで
複数の言語ランタイム/アプライアンスが動作します.
CRubyも移植は一応の完成を見ることができ,動作させる事が可能です.
今回は動作方法について書きます.
じゅんび
まずはリポジトリのcloneから.
https://github.com/cloudius-systems/osv/blob/master/README.md
に必要なパッケージはFedora,Debian,Archについて記述されています.
しかし,Fedora20を用意できるのであれば,osvのディレクトリで,
ビルド
ビルドは単純です.
なお,rubyのビルド中にエラーで失敗する時は,-jフラグを外してもう一度やってみてください.
まだrubyとosv kernelの並列ビルドがうまくいかない時があるようです(すみません)
実行
次のスクリプトでOSvは実行できます
また,
apps/ruby-example/sample-codes/に,このビルドされたイメージファイルで他に
実行できるサンプルのrubyスクリプトもあるので,適当に指定してみたりして試してみてください.
〜
OSvのCRuby移植担当してたoruminです.
OSv1日目の記事で@syuu1228さんが説明されていた通り,現在OSvで
複数の言語ランタイム/アプライアンスが動作します.
CRubyも移植は一応の完成を見ることができ,動作させる事が可能です.
今回は動作方法について書きます.
じゅんび
まずはリポジトリのcloneから.
$ git clone http://github.com/cloudius-systems/osv.git osvその後,忘れずsubmoduleをinit & updateしましょう
$ cd osv && git submodule --init updateビルドのためには,いくつかパッケージが必要です.
https://github.com/cloudius-systems/osv/blob/master/README.md
に必要なパッケージはFedora,Debian,Archについて記述されています.
しかし,Fedora20を用意できるのであれば,osvのディレクトリで,
$ sudo ./script/setup.pyと実行すれば必要なパッケージを全て準備してくれます.
ビルド
ビルドは単純です.
$ make -j`nprocs` image=ruby-exampleこのようにしたら,あとはビルドが終わるまで待機です.
なお,rubyのビルド中にエラーで失敗する時は,-jフラグを外してもう一度やってみてください.
まだrubyとosv kernelの並列ビルドがうまくいかない時があるようです(すみません)
実行
次のスクリプトでOSvは実行できます
$ ./script/run.pyどうでしょうか? うまくいけば
OSv v0.16-814d434のように表示されます.
eth0: 192.168.1.89
Hello, world!
また,
$ ./script/run.py -e "/ruby.so /irb"のように起動引数を手動で設定すれば,irbが実行できたりします.
apps/ruby-example/sample-codes/に,このビルドされたイメージファイルで他に
実行できるサンプルのrubyスクリプトもあるので,適当に指定してみたりして試してみてください.