雑念日記

主に技術的なことをつらとらと(書ければいいな)。

Smalruby (スモウルビー) を Ubuntu 15.04 にインストールする

今日の午後はプログラミング道場:ProgShouDojoのお手伝いに行ったのだけれども、講師+アシスタントの数>参加者数という状態だった。(午前中の方が参加者が多く盛況だったとのことなので手伝いに行くタイミングが良くなかった。)

手持ち無沙汰気味だったので、自分のマシン (Ubuntu 15.04) に Smalruby の開発環境を用意するという作業をしてみたメモ。

github.com

Smalruby は web 版があるのでお試しで触ることはできるのだけど、作ったプログラムの実行までは web 版だけではできないので、手元にインストールするときっといいことあるよ。

結論を書くと、基本的に Github 上の README に従えば問題ないので特段メモが必要な作業でもなかった。書いてなかったことをやってる箇所もちょこちょこあるけど、普通に手順通りに進めていれば必要な作業だと気付く話。

ruby のバージョン

リポジトリの .ruby-version が 2.1.5 なので、特に理由がなければこれをそのまま用意するのが楽。

dxruby_sdl のインストール

Smalruby は作成したプログラムの実行に dxruby を使うのだけれど、dxruby は Windows 専用のライブラリなので、Windows 以外の場合は互換ライブラリを入れる必要がある。

ドキュメント通りに。特にハマりポイントはなかった。(sdl が既に入ってたからというのもあるのかな?)

  $ sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev \
    timidity libsdl-ttf2.0-dev libsdl-sge-dev fonts-horai-umefont fonts-ipafont
  $ gem install dxruby_sdl

smalruby-editor のインストール

こちらもまずはドキュメント通りに。

  $ git clone https://github.com/smalruby/smalruby-editor.git

README に書いてないことやった箇所その1。

Gemfile をいじって therubyracer の箇所をアンコメント。

  $ cd smalruby-editor
  $ vi Gemfile
  $ git diff Gemfile
  diff --git a/Gemfile b/Gemfile
  index ebe938e..e65ef75 100644
  --- a/Gemfile
  +++ b/Gemfile
  @@ -15,7 +15,7 @@ gem 'uglifier', '>= 1.3.0'
   gem 'coffee-rails', '~> 4.0.0'

   # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  -# gem 'therubyracer', platforms: :ruby
  +gem 'therubyracer', platforms: :ruby

   # Use jquery as the JavaScript library
   gem 'jquery-rails'

README に書いてないことやった箇所その2。

phantomjs が入っていないと後の rake がモリモリ落ちるので入れた。

apt で入れてもいいし、

  $ sudo apt-get install phantomjs
  $ phantomjs --version
  1.9.0

公式のドキュメントに沿って最新を取得しても良い。

Build | PhantomJS

build.sh は結構時間が掛かるので注意。 手順に従うと bin/phantomjs が生成されるので、/usr/local/bin など PATH が通ったとこに配置。

引き続きドキュメント通りに。

  $ bundle install
  $ cp config/database.yml.mysql2 config/database.yml
  $ vi config/database.yml # もし password などの変更が必要であれば
  $ rake db:create
  $ rake db:migrate
  $ rake

rake では以下のようなエラーが出たりするが、作者の高尾さんに直接確認したらこれは無視してよいとのこと。これはこれとして、テストは一通りパスした。

TypeError: null is not an object (evaluating 'b.nodeType')
  # blockly/blockly_compressed.js:225 -- contains
  # blockly/blockly_compressed.js:1323 -- inject
  # smalruby.js:90 -- initialize
  # smalruby.js:303
  # jquery.js:3 -- k
  # jquery.js:3 -- fireWith
  # jquery.js:3 -- ready
  # jquery.js:3 -- D

引き続きドキュメント通りに。

以下を実行せずに Smalruby を起動すると、web 版と同じく作ったプログラムをそのまま実行できない設定で起動して悲しいことになります。

  $ touch tmp/standalone

さて、起動してブラウザから localhost:3000 にアクセス。

  $ rails server

できたーやったー。

f:id:hoshi_sano:20151010182521j:plain