ページ

2012-11-06

Lubuntuにrbenvでrubyとrailsを入れる


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さんありがとうございました。




0 件のコメント:

コメントを投稿