CentOS
mruby

mrubyのインストールからHello Worldまで(CentOS7)

mrubyとは、組込ソフトウェア向けに開発された軽量なRuby言語です。 mrubyの開発はGitHub上で行われているため、ソースコードや開発の様子はこちらで見ることができます。
今回はmrubyをCentOS7上にインストールし、"Hello World"するまでの手順を書いていきます。

mrubyの入手

mrubyのソースコードはGitHubから取得するため、まずはGitをインストールします。
※コマンドは適宜sudo権限で実行して下さい。

$ yum install -y git

次にGitHubからmrubyのソースコードを入手します。

$ git clone https://github.com/mruby/mruby.git

これで手元にGitHubにあるmrubyのリポジトリのコピーが手に入ったかと思います。

mrubyのビルド

mrubyをビルドするために必要なツールを入れていきます。

$ yum install -y gcc bison

gccはCコンパイラ、bisonはRubyの文法解析部を生成するツールです。
また、mrubyではコンパイルなどのビルド処理をRubyを使って制御しているため、Rubyの環境も用意してやる必要があります。
今回はRubyのバージョン管理ができるrbenvを使ってRubyの環境を作っていきます。下記のコマンドを順に実行して下さい。

$ yum install -y openssl-devel readline-devel zlib-devel
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
$ ~/.rbenv/plugins/ruby-build/install.sh
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
$ rbenv install 2.5.0
$ rbenv global 2.5.0

最後から2番目のRubyのインストールには少々時間がかかるかと思います。
下記の通り、Rubyを利用する環境が整ったことが確認できるかと思います。

$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]

ここまで来ると、mrubyをビルドする環境が整いましたので、ビルドしていきましょう。
git cloneで落としてきたmrubyのディレクトリの中に入ってmakeコマンドを実行します。
この際に、mrubyディレクトリの中にあるbuild_config.rbの設定を書き換えることで、利用するmrbgemなど、様々な設定を行うことができます。(今回は特に設定を変えません)

$ cd mruby
$ make

makeが終わると、binディレクトリの中にコンパイルされたmruby関連のコマンドができていることが確認できます。

$ ls -l bin
total 8040
-rwxr-xr-x. 1 root root 1829168 Mar 31 12:06 mirb
-rwxr-xr-x. 1 root root 1103880 Mar 31 12:06 mrbc
-rwxr-xr-x. 1 root root 1931576 Mar 31 12:06 mrdb
-rwxr-xr-x. 1 root root 1816592 Mar 31 12:06 mruby
-rwxr-xr-x. 1 root root 1543544 Mar 31 12:06 mruby-strip

mrubyを動かしてみる

それではmrubyを動かしてみましょう。
今回はbin配下のmirbを用います。mirbはmrubyの対話型インタープリタで、CRubyにおけるirbに相当するコマンドです。
mirbコマンドを実行すると対話型インタープリタが立ち上がるため、p "Hello World!"を実行してみましょう。

$ bin/mirb
mirb - Embeddable Interactive Ruby Shell

> p "Hello World!"
"Hello World!"
 => "Hello World!"

"Hello World!"が返ってきたら成功です!

参考

まつもとゆきひろ直伝 組込Ruby「mruby」のすべて 総集編