Linux Mint 18 で確認しました。
まずはここの Download から mruby をダウンロードします。自分は「mruby Stable版 v1.2.0 Linux/Mac版」を選択しました。
解凍して適当な場所に置き、ディレクトリに入って
$ make
を実行。gcc と CRuby と Bison が必要です。Bison は入っていなければ $ sudo apt-get install bison で入りますが、僕の環境にはすでに入っていました。gcc が入っていないということはないでしょうが、なければ $ sudo apt-get install build-essential で。実行すると
mruby_build.txt · GitHub
という風にビルドされました。これでおしまいです。
mruby の Hello, World! は CRuby とはだいぶちがいます。おおよそ
Hello World · mruby/mruby Wiki · GitHub
に書いてあるようにやればいいのですが、一部(C に慣れている人(自分にあらず)には自明であろう)修正が必要です。
まず
#include <stdio.h> #include <mruby.h> #include <mruby/compile.h> int main(void) { mrb_state *mrb = mrb_open(); if (!mrb) { /* handle error */ } puts("Executing Ruby code from C!"); mrb_load_string(mrb, "p 'hello world!'"); mrb_close(mrb); return 0; }
のコードを例えば hello.c で保存します。それで書かれているとおりに
$ gcc -Iinclude hello.c build/host/lib/libmruby.a -lm -o hello.out
とやると
gcc: error: build/host/lib/libmruby.a: そのようなファイルやディレクトリはありません
とおこられます。なのでそれに対応して
$ gcc -Imruby/include hello.c mruby/build/host/lib/libmruby.a -lm -ohello.out
と修正、そして
$ ./hello.out Executing Ruby code from C! "hello world!"
とうまくいきました。
では helloworld.rb みたいな rbファイルはどうやって実行するのかなあ。ここが初心者である。mruby はバイナリにコンパイルして実行するのだよね。さて。
※追記
わかった。bin/mruby が mruby のインタプリタだから、例えば
$ ./mruby/bin/mruby helloworld.rb
とかでいいわけだ。
コンパイルは bin/mrbc で行うので、
$ ./mruby/bin/mrbc helloworld.rb
でバイトコードにコンパイルされ、helloworld.mrb が出来る。これを実行するには
$ ./mruby/bin/mruby -b helloworld.mrb
Hello, World!
とオプションをつけて実行すればよい。
※参考
mruby概論(2):“組み込みRuby”こと「mruby」をセットアップしてみよう (2/3) - MONOist(モノイスト)
mrubyをとりあえず動かしてみただけ - ねこのて