Ubuntu server 10.04LTSでruby1.9.2+rails3.1がとりあえず動くまでのメモ

参考: http://d.hatena.ne.jp/f_world21/20101004/1286206031

忙しい人向け

% sudo apt-get install ruby rubygems curl git-core build-essential zlib1g-dev sqlite3 libsqlite3-dev libssl-dev
% gem install rubygems-update
% sudo ~/.gem/ruby/1.8/bin/update_rubygems
% sudo gem install rvm
% bash < <(curl -s -B https://rvm.beginrescueend.com/install/rvm)
% echo '[[ -s "~/.rvm/scripts/rvm" ]] && source "~/.rvm/scripts/rvm"' >> ~/.bashrc
% source .bashrc
% rvm install 1.9.2
% rvm 1.9.2 --default
% gem install rails
% wget http://nodejs.org/dist/node-v0.4.12.tar.gz
% tar zxf node-v0.4.12.tar.gz
% cd node-v0.4.12
% ./configure && make && sudo make install

適当な作業用ディレクトリに移動して

% rails new hoge
% cd hoge
% rails server

忙しくない人向け

実際につまずいた経路も略さずたどるから長くなるよ。
まっさらに近い状態のUbuntuで試したので、環境によってはつまずかないこともあるよ。


aptからrubyrubygems入れる。

% sudo apt-get install ruby rubygems
% ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]
% gem -v
1.3.5

gemをアップデートする。

% gem install rubygems-update

DLしたけどパーミッションの問題で実行しなかったよ的メッセージが出る。手動で実行する。

% sudo ~/.gem/ruby/1.8/bin/update_rubygems
% gem -v
1.8.10

rvmをインストールする。

% sudo gem install rvm

ずらっとメッセージが出てくるので手順に従う。curlとgitが要るようだ。

% sudo apt-get install curl git-core
% bash < <(curl -s -B https://rvm.beginrescueend.com/install/rvm)

.(zsh|bash)rcに追記して反映。

% echo '[[ -s "~/.rvm/scripts/rvm" ]] && source "~/.rvm/scripts/rvm"  # This loads RVM into a shell session.' >> ~/.zshrc
% source .zshrc
% rvm -v
rvm 1.8.3 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]

rvm-installの必要はないようだ。というかコマンド自体見当たらない。 *1


ruby1.9.2をコンパイル

% rvm install 1.9.2
()
configure: error: no acceptable C compiler found in $PATH

Cコンパイラ入ってないと怒られたのでgcc入れる。

% sudo apt-get install gcc

再度試行。

% rvm install 1.9.2
()
Install of ruby-1.9.2-p290 - #complete

ruby1.9.2をデフォルトに設定する。

% rvm 1.9.2 --default
% ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]

railsのインストール。

% gem install rails
()
ERROR:  Loading command: install (LoadError)
    no such file to load -- zlib

zlib入ってないといわれたので準備する。

% sudo apt-get install zlib1g-dev
% cd ~/.rvm/src/ruby-1.9.2-p290/ext/zlib
% ruby extconf.rb
% make && make install

再度試行。

% gem install rails
()
% rails -v
Rails 3.1.0

適当な作業用ディレクトリに移動して、プロジェクト作成。

% rails new hoge
% cd hoge
% rails server
()
Could not find gem 'turn (>= 0)' in any of the gem sources listed in your Gemfile.
Run `bundle install` to install missing gems.

はて、bundle installは先ほど動いていたはずだが、と思いながら再度実行。

% bundle install
()
Gem files will remain installed in ($HOME)/.rvm/gems/ruby-1.9.2-p290/gems/sqlite3-1.3.4 for inspection.
Results logged to ($HOME)/.rvm/gems/ruby-1.9.2-p290/gems/sqlite3-1.3.4/ext/sqlite3/gem_make.out

sqlite3入ってなかったせいでこけたらしい。

% sudo apt-get install sqlite3 libsqlite3-dev
% bundle install
()
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
% rails server
()
($HOME)/.rvm/gems/ruby-1.9.2-p290/gems/execjs-1.2.6/lib/execjs/runtimes.rb:46:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

javascriptランタイムが無いといわれるので入れる。今回はnode.jsを採用。v0.4.12 stableをDLする。

% wget http://nodejs.org/dist/node-v0.4.12.tar.gz
% tar zxf node-v0.4.12.tar.gz
% cd node-v0.4.12
% ./configure
()

C++コンパイラが無いと言われるので入れる。

% sudo apt-get install g++
% ./configure
% make

OpenSSLのライブラリが無いと言われるので入れる。

% sudo apt-get install libssl-dev
% ./configure && make && sudo make install
()
'install' finished successfully (0.239s)

railsプロジェクトの場所に戻って

% rails server
()
$HOME/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require': no such file to load -- openssl (LoadError)

rubyの方にもOpenSSLが要るらしい。再コンパイル

% rvm install --force 1.9.2
% rails server
=> Booting WEBrick
=> Rails 3.1.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-09-17 10:15:57] INFO  WEBrick 1.3.1
[2011-09-17 10:15:57] INFO  ruby 1.9.2 (2011-07-09) [i686-linux]
[2011-09-17 10:15:57] INFO  WEBrick::HTTPServer#start: pid=846 port=3000

対象のサーバの3000番ポートにブラウザでアクセス。

デフォルトの画面が表示されたので一段落終了。お疲れさまでした。

*1:~/.rvm/scripts/ にあった。とはいえ実行を指示されてないし、実際実行したらこけるので無視。