Tuesday, January 31, 2012

ubuntu11.10にruby 1.9.2, Rails 3.2をインストール

会社でUbuntu上にRailsをインストールしようとして、若干手間取ったのでメモ。(Ubuntuはまっさらからのインストール)

(最終的な)環境は以下の通り。

  • OS: Ubuntu 11.10
  • Ruby 1.9.2
  • Rails: 3.2.1

関連パッケージのインストール

Git, RVM, Rubyをインストールする。会社環境はプロキシ内なので、そのあたりも注意。

まずはプロキシの設定。必要に応じて.bashrcなりにも追記。

$ export http_proxy="your.proxy.name:8080"
$ export https_proxy="your.proxy.name:8080"
ついでcurl, Git, build-essentialインストール。
$ sudo apt-get install curl
$ sudo apt-get install git
$ sudo apt-get install build-essential
で、~/.gitconfigに以下を追記。
[http]
  proxy = %http_proxy%
Ubuntuのデフォルトでは各種devパッケージが入っていないようなので、zlib1g-dev libssl-dev libreadline-gplv2-dev libxml2-dev libsqlite3-devを追加インストール。参考
$ sudo apt-get install zlib1g-dev libssl-dev libreadline-gplv2-dev libxml2-dev libsqlite3-dev

Rubyインストール

rvmでRuby本体をインストール。

$ rvm install 1.9.2
このままだとgem installが失敗するので、zlibをコンパイル。参考
$ cd ~/.rvm/src/ruby-1.9.2-p290/ext/zlib
$ ruby extconf.rb
$ make
$ make install
同様に、bundleで使うsslのためにopensslもコンパイル。
$ cd ~/.rvm/src/ruby-1.9.2-p290/ext/openssl
$ ruby extconf.rb
$ make
$ make install

Railsインストール

ここでようやくrailsインストール。

$ gem install rails
$ rails -v
Rails 3.2.1
$ rails new testapp
$ cd testapp
ただ、ここでscaffoldするとExecJS::RuntimeUnavailableが発生、と怒られるので、Gemfileにexecjs, therubyracerを追加。 参考
gem 'execjs'
gem 'therubyracer'
ここでもう一度bundle install(ここで、上記build-essentialが入っていないとg++がなくてコンパイルできない)
$ bundle
ようやくscaffoldを実行し、動作確認。
$ rails g scaffold user user_name:string age:integer
$ rake db:migrate
$ rails server
できた。

No comments: