Ruby on Rails 3.2 を Ubuntu にインストールする手順をかなり丁寧に説明してみました - Rails 雑感 - Ruby on Rails with OIAX
を参考(検証)にしながら、lubuntu 12.10 のほぼまっさらな状態からやってみる。
ちなみにubuntu系ははじめからrubyは入ってない。
各種パッケージのインストール
$ sudo apt-get install build-essential git curl zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev libsqlite3-dev nodejs
※build-essentialにmake, g++などが入っている。railsはJavaScript Runtimeが必要なのでnode.jsを選択した。
Apache、MySQL を使うなら、以下のものが必要。
$ sudo apt-get install apache2 libmysqlclient-dev mysql-server
rbenvセットアップ
apt-getのrbenv調査
Ubuntu 12.04からapt-getでrbenvのインストールが可能
apt-getのrbenvを確認してみる。
$ sudo apt-get install rbenv
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
libreadline5 libruby1.8 libruby1.9.1 ruby ruby1.8 ruby1.9.1
提案パッケージ:
ri ruby-dev ruby1.8-examples ri1.8 ruby-switch ruby1.9.1-examples ri1.9.1
graphviz ruby1.9.1-dev
apt-getでrbenvを入れるとシステム用に1.8や1.9のrubyも入るようだったので止めとく。
rbenv は
sstephenson/rbenv にしたがってgitでインストールすることにした。
rbenvをインストール
$ cd
$ git clone git://github.com/sstephenson/rbenv.git .rbenv
zshを使っているので.zshenvに。
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshenv
$ echo 'eval "$(rbenv init -)"' >> ~/.zshenv
何かのきっかけで、title:7: command not found: rbenv と表示されても、.zshenvに eval "$(rbenv init -)" が追記されていれば正常。
シェル再起動
$ exec $SHELL
ruby-buildインストール
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
一回目に fatal: The remote end hung up unexpectedly
が出たけどもう一回やったらうまくいった。
インストール可能なパッケージ一覧
$ rbenv install -l
略
1.9.3-p194
1.9.3-p286
1.9.3-preview1
1.9.3-rc1
previewの手前の安定版 1.9.3-p286 を入れることにした。
$ rbenv install 1.9.3-p286
※ここで make: コマンドが見つかりません
が出る場合は $ sudo apt-get install build-essential
$ rbenv rehash
常に使うrubyとして設定
$ rbenv global 1.9.3-p286
$ ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [i686-linux]
で確認。
zshの訂正機能が効いてzsh: correct 'ruby' to '_ruby' [nyae]?
のようになったら、訂正しないの意味の n を入力。
一応
$ rbenv version
$ which ruby
してrbenvのrubyになってるか確認。
.gemrcを用意。
$ echo 'install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri' >> ~/.gemrc
$ gem install rbenv-rehash
入れとく。
railsインストール
$ gem install rails
$ rails -v
Rails 3.2.8
zsh: correct 'rails' to 'tail' [nyae]?
と聞かれたら n。
手順にしたがってrailsのデモを作る
$ cd
$ mkdir work
$ cd work
$ rails new foo --skip-bundle
$ cd foo
Gemfile の以下のコメントアウトを外す。
# gem 'therubyracer', :platform => :ruby
現状この意図がわからなくて悔しい。
追記:わかった。therubyracerを入れずに rails generate scaffold~ すると Could not find a JavaScript runtime.と言われた。
ググってみると、railsはJavaScript Runtime(エンジン)が必要で、railsは ExecJS というgemが環境にインストールされているJavaScript Runtimeを探してくるが見つからなくて動かねえよってことらしい。ちなみにtherubyracerにはv8が入っている。再びググるとv8まわりでトラブルが起きている記事や、メモリ使用量が多いためHerokuでは非推奨という記述が見つかった。うちはnode.jsを入れることにする。(nodejsもv8だった)。
$ bundle install
$ rails g scaffold user name:string email:string
$ rake db:migrate
$ rails s
ブラウザで http://localhost:3000/users を開いて動作確認。
動いた。
OIAXさんありがとうございました。