rails インストールメモ

『Ruby on Rails環境構築ガイド』と
『Ruby on Rails3 アプリケーションプログラミング』を基に
環境構築実験をする。
Ubuntu, CentOS, Windows, MaxOS を並行して使うことにする

- gitのインストールは済んでいるものとする
- ruby1.9.3系を使う
- 各ホームディレクトリ配下に以下のファイルを置いておくこと
 - ドキュメントのリンクをスキップしてビルドが速くなるらしい（受け売り）

```ruby:.gem.rc
install: --no-ri --no-rdoc
update: --no-ri --no-rdoc
```

`rails new some_app`としてアプリを新規に作る
>以下、エラーが出るたびに rmdir して最初から作り直してる

#ubuntu12.4での反応
###rails new some_app を実行すると、sqlite3のエラーが起きた
-必要なライブラリが無いらしい
ubuntuで以下のコマンドを投げ込んだらエラーが消えた

```
sudo gem install libsqlite3-dev
sudo gem install turbolinks
sudo gem install uglifier
```

なんかエラーが出続けるので
`rails -v` したらVer4.0.0-beta1だった

`sudo gem uninstall rails -a`でRailsをアンインストールする

しかし、`rails -v` したらVer4.0.0-beta1と帰ってくる。
`which rails`すると""/usr/local/bin/rails""にまだ残っている・・・

色々試したのだが上手く行かない。`gem install <package>` と`sudo gem install <package>`ではインストール先が変わるらしい。どうも環境がごた混ぜになった模様

[ここ]("http://qiita.com/items/2e6258b7c6a5b13b7d16")の情報を基にgemを一度空にする。
`sudo gem uni $(gem li --no-versions)` システム環境側の全削除
`gem uni $(gem li --no-versions)` ホームディレクトリ配下の全削除（多分・・・）

home配下に入れるように注意。以降`gem`コマンドに`sudo`を付けないようにする

```bash
gem install rails
```

>Fetching: i18n-0.6.1.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/local/lib/ruby/gems/1.9.1 directory.

パーミッションが無い・・・`sudo`じゃなきゃ駄目ですか・・・
そもそも、環境構築ガイドの方には1.8と1.9を apt-get purge しろと書いてあった。

素直に従い、`sudo gem install rails`することにした
また、新規作成時に `sudo rails new <app>`とすることで、依存関係のあるgemをインストールしてくれるらしい。

```bash
rails new some_app
cd some_app
rails server
```

ここで失敗

>\/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in 'autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
        from /usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib

[ここ]('http://rails.soracid.com/82')を参考にGemfileを修正

```ruby:Gemfile
# 末尾に追加
gem 'therubyracer' 
```

`sudo bundle install`する

また失敗、

>Installing therubyracer (0.11.4)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/bin/ruby extconf.rb
checking for main() in -lpthread... yes
creating Makefile
make
compiling trycatch.cc
make: g++: Command not found
make: *** [trycatch.o] Error 127
Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.11.4 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.11.4/ext/v8/gem_make.out
An error occurred while installing therubyracer (0.11.4), and Bundler cannot continue.
Make sure that `gem install therubyracer -v '0.11.4'` succeeds before bundling.

g++が無いって怒ってるっぽいのでインストールする。
そして再度 bundle install

```bash
sudo apt-get g++
sudo bundle install
sudo rails server
```

動いた！！

>=> Booting WEBrick
=> Rails 3.2.13 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2013-04-27 12:52:17] INFO  WEBrick 1.3.1
[2013-04-27 12:52:17] INFO  ruby 1.9.3 (2013-02-22) [x86_64-linux]
[2013-04-27 12:52:17] INFO  WEBrick::HTTPServer#start: pid=1816 port=3000

しかし、このままでは構成ファイルが全部root権限になってしまうのでアプリを全削除

```bash
cd ../
sudo rm -fR someapp
rails new someapp
cd someapp
rails server
```

''失敗''

Gemfileの修正は毎回必要らしい。
修正して`build install`。
もう一回`rails server`
おけ、無事起動。

#Windows版
問題なく動いた

#Mac版
問題なく動いた

#centos版 (RVM経由)
rvmのインストールから試してみる

`curl -L https://get.rvm.io | bash -s stable --autolibs=3 --rails`

ruby-2.0.0-p0がインストールされる。チョー時間かかった３０分以上？
以下のようにタイプして初期設定を行う。これでrvmにパスが通る

`source ~/.rvm/scripts/rvm`

`rvm list known`でインストール可能なバージョンを表示
今回は1.9.3系を入れることにする
`rvm install 1.9.3`　枝番を省くと勝手に最新版"-p392"を選んでインストールしてくれる

切り替える前に今のrubyのバージョンを確認
`ruby -v`

>ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]

1.9.3に切り替える

```bash
rvm use 1.9.3
ruby -v
```

>ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]

おっけ。
[オフィシャルの解説]('https://rvm.io/rvm/install/')が分かりやすい。英語だけどコマンド追ってくだけで理解できた

`rum use 1.9.3 --default`これで1.9.3がデフォルトになる

**引き続きRailsのインストール
`gem install rails`
そしてアップデート
`gem update`

**Railsを新規作成

```bash
rails new some_app  #ここは問題なし
cd some_app
rails server
```

エラー。またお前か！！

>/home/vagrant/.rvm/gems/ruby-1.9.3-p392/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

[JavaScriptのランタイムの問題]('http://d.hatena.ne.jp/babydaemons/20110920/Rails3_on_Ubuntu')とのことなので試しに手動でインストールしてみる

`gem install therubyracer`
駄目だった。諦めてUbuntuとおなじくGemfileを修正する。

あとは同じように
`bundle install`
`rails s` ""server""の代わりにこの表記でもいいらしい
動作した。

ブラウザから http://ip-addr:3000/ でアクセスしてwelcomeと表示されればOK
''centos''の場合、iptablesによってアクセスがブロックされ表示できなかった。
`sudo iptables stop`で無理やり黙らせたら表示できるようになった。

##以上、４種類の環境にrails3をインストールして動作確認をした

+ Ubuntu12.04 (VirtualBox + Vagrant)
+ CentOS6.4 (VirtualBox + Vagrant)
+ Windows7
+ MacOS X(MoutainLion)

###感想

- Rubyド初心者としては動くとろこまで行ったことを幸いとしておこう。
- RubyやGemのインストール手順を見なおす必要がありそう。
- PHPに比べると、バージョンの違いにピーキーに反応する感じ