毎回忘れるので備忘録として。
- OS は Debian Squeeze
- VMware Fusion で仮想マシン構築
- Ruby は rvm で入れる
条件としてはこんな感じ。
OS インストールと VMware Tools インストール
インストールは省略。パッケージのチェックをすべて外すこと。
インストール終わってログインしたら VMware Tools インストールに必要なものを入れる。
# apt-get install make gcc linux-headers-2.6.32-5-686
入れ終わったら VMware Fusion 側でメニューから [仮想マシン]→[VMware Tools のインストール]を選択する。
# mount /dev/cdrom
# cd /tmp
# tar zxpf /media/cdrom/VMwareTools-8.4.7-416484.tar.gz
# umount /dev/cdrom
# cd vmware-tools-distrib
# ./vmware-install.pl
rvm には必須じゃないけど個人的に必要なコマンドを入れる
とりあえず ssh と sudo と zsh とついでに vim を入れる
# apt-get install ssh sudo zsh-beta vim
/etc/sudoers 書き換えて一般ユーザに sudo 権限持たせる
# vim /etc/sudoers
# User privilege specification
root ALL=(ALL) ALL
yono ALL=(ALL) ALL # 追加
sudo 権限持たせたので以降は一般アカウントで作業
# su - yono
ログインシェルを変更する
$ chsh
パスワード:
yono のログインシェルを変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
ログインシェル [/bin/bash]: /bin/zsh-beta
一旦抜けてログインし直す。以降は zsh での作業となる。
rvm インストール
rvm インストールに最低限必要なコマンドを入れる
% sudo apt-get install curl git
http://beginrescueend.com/rvm/install/ に従い、rvm をインストール
% bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
インストール完了時に「Ruby 処理系入れるならこのパッケージをインストールしろ」的なメッセージが出るのでコピペして実行(apt-get のコマンドがそのまま表示される)。
$HOME/.zshrc に以下の記述を加えて読み込む
% vim ~/.zshrc
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
% source ~/.zshrc
ruby 1.9.2 をインストール
最新版は 1.9.3 だが今回は 1.9.2 を入れる。 ついでに gemset も作っておく
% rvm install 1.9.2
% rvm use 1.9.2
% rvm gemset create rails3
% rvm gemset use rails3
–no-ri –no-rdoc をデフォルトにする
毎回 gem install 時にオプションで付けるのを忘れるので、.gemrc に記述しておく。
% vim ~/.gemrc
gem: --no-ri --no-rdoc
rails をインストール
プロジェクトを作成
sample プロジェクトを作って実行してみる。
% rails new sample -d sqlite3
% cd sample
% rails s
すると、以下のようなエラーが出る
/home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/execjs-1.2.12/lib/execjs/runtimes.rb:47:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/execjs-1.2.12/lib/execjs.rb:5:in `<module:ExecJS>'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/execjs-1.2.12/lib/execjs.rb:4:in `<top (required)>'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `<top (required)>'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `<top (required)>'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/coffee-rails-3.1.1/lib/coffee-rails.rb:1:in `require'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/coffee-rails-3.1.1/lib/coffee-rails.rb:1:in `<top (required)>'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
from /home/yono/sample/config/application.rb:7:in `<top (required)>'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.1.3/lib/rails/commands.rb:52:in `require'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.1.3/lib/rails/commands.rb:52:in `block in <top (required)>'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.1.3/lib/rails/commands.rb:49:in `tap'
from /home/yono/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.1.3/lib/rails/commands.rb:49:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
調べてみると JavaScript エンジンが必要とのことらしい(JavaScriptエンジンをインストールする - 祈れ、そして働け 〜 Ora et labora)。
というわけで、therubyracer を Gemfile に追記して bundle 実行。
% vim Gemfile
gem 'therubyracer'% bundle
改めて rails s を実行すると今度は正常に起動した。