Ruby on Rails 5 を Windows 7 にインストールしてみる


#はじめに
1. 環境  
    - マシン環境
        - Microsoft Windows 7 Professional SP1 (x64)   
    - ソフトウェア
        - Ruby 2.2.5 (x64)  
        - Development Kit dll(x64)  
        - SQLite3 64-bit DLL (x64) for SQLite version 3.14.0.  
        - Rails 5.0.0  
   
2. 作業の流れ
    - 前提条件の確認
    - Rubyインストール
    - Development Kitインストール
    - Sqlite3インストール
    - RubyPackageの更新とBundlerインストール
    - Ruby on Rails インストール
    - 動作確認

#前提条件の確認
まずは、基本の基本。[公式ガイド](http://guides.rubyonrails.org/getting_started.html)を確認する。日本語版はまだ5.0が出ていないので英語版参照。

> This guide is designed for beginners who want to get started with a Rails application from scratch. It does not assume that you have any prior experience with Rails. However, to get the most out of it, you need to have some prerequisites installed:
・The Ruby language version 2.2.2 or newer.
・Right version of Development Kit, if you are using Windows.
・The RubyGems packaging system, which is installed with Ruby by default.
・A working installation of the SQLite3 Database.

**要約**：初心者向けにゼロから書かれているのでRails未経験でも大丈夫。ただガイド通りに流すために、下記をインストールして動くように準備しておいてね☆

- Ruby 2.2.2 以上
- Windows使っているならDevelopment Kit  
- RubyGemsパッケージングシステム。基本Rubyインストール時に一緒に入ります。 
- SQLite3 

* * * 

以前Macで環境構築した際には(よくわからないまま)homebrewとかrbenvとかBundlerを書かれているがままにインストールしました。改めてその役割とWindowsでも必要なのかチェック。

- homebrew：Mac用パッケージマネージャー。  
  Windowsなので今回は不要。  
- rbenv：Rubyのバージョンを簡単に切り替えるための管理ツール(コマンド)  
  Cygwinを入れてその上にインストールする等情報はあれど、Windows版なし。Windowsで同等の機能を持つツールはpikがお勧めらしい。(が、今回はパス)
- Bundler：Rubyのライブラリ管理ツール。Railsでは標準で採用
　標準とは言え、自動インストールはしてくれない模様。なのでこれはGemで別途インストール

* * *
という訳で結果としてRubyとDevelopment KitとSQLLite、GemでBundlerの計4つをインストール。

#インストール  
##Ruby  

1. ダウンロード
Windows用には楽々インストーラーが出ています。[RubyInstaller for Windows](http://http://rubyinstaller.org/)の[ダウンロード](http://rubyinstaller.org/downloads/)ページ：**Ruby Installers**セクションより**Ruby 2.2.5 (x64)**をクリックしてダウンロード。最新のRuby 2.3.1 (x64)は2016.8.12時点Sqlite3側の対応ができていないため、追加の作業(下記もろもろ参照)が必要になります。ので素直に1つ前の安定版を。(要は私ひっかかったのです…orz)  

 
2. インストール
    - ダウンロードした**rubyinstaller-2.2.5-x64.exe**を右クリックし管理者として実行を選択
    - [セットアップに使用する言語の選択]画面で[日本語]を選択し[OK]をクリック
    - [使用許諾契約書の同意]画面で[同意する]を選択し[次へ]をクリック
    - [インストール先とオプションの指定]画面で下記設定をし[インストール]をクリック
        - フォルダは既定の[c:\Ruby22-x64]のまま
        - [Rubyの実行ファイルへ環境変数PATHを設定する]にチェック
        - [.rbと.rbwファイルをRubyに関連付ける]にチェック
    - [Ruby 2.2.5-p319-x64セットアップウィザードの完了]画面で完了をクリック  
  

3. 動作確認
   コマンドプロンプトを起動し、*ruby -v*でインストールしたバージョンが表示されればOK
  
```
C:\ruby -v
ruby 2.2.5p319 (2016-04-26 revision 54774) [x64-mingw32]
```
  

##Development Kit  
1. ダウンロード
[Rubyと同じサイト](http://http://rubyinstaller.org/)にzip自己解凍形式のexeがあります。[ダウンロード](http://rubyinstaller.org/downloads/)ページ：**DEVELOPMENT KIT**セクションより**For use with Ruby 2.0 and above (x64 - 64bits only)**の下**DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe**をクリックしてダウンロード。  

2.インストール  
    - ダウンロードした**DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe**をクリック
    - 解凍先フォルダに[C:\Devkit]を入力し[Extract]をクリック
    - コマンドプロンプトを起動し[C:\Devkit\devkitvars.bat]を実行し環境変数PATHにDevkitを登録する  
  
```
C:\>c:\Devkit\devkitvars.bat
Adding the DevKit to PATH...
```
  

##SQLite3 インストール  
1. ダウンロード
[SQLite公式サイト](https://www.sqlite.org/index.html)の[ダウンロードページ](https://www.sqlite.org/download.html)：**Precompiled Binaries for Windows**から**sqlite-dll-win64-x64-3140000.zip**(64-bit DLL (x64) for SQLite version 3.14.0.)をクリック  
　
2. インストール
    - ダウンロードした**DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe**を解凍
    - 解凍されたファイルを[C:\Ruby22-x64\bin]にコピー。(PATHさえ通っていればC:\Windows\system32でもどこでもOK。）とりあえず分かり易くRubyにいれておく
 

##RubyGemsの更新とBundlerインストール  
ここまでで、下地の準備ができました。Rubyを入れた際にインストールされたRubyGemsの更新とBundlerのインストールをします。　　
　
1. RubyGemsの更新
コマンドプロンプトを起動し**gem update --system**で更新
  
```
C:\>gem update --system
```
 
2. Bundlerのインストール
コマンドプロンプトを起動し**gem install bundler**でインストール
  
```
C:\>gem install bundler
```
 
##Ruby on Rails インストール  
[Rails Installer](http://railsinstaller.org)には色々自動で入るInstaller型のRailsがあるのですが、現時点ではRails5には未対応。なので素直にGemでインストールします。　
コマンドプロンプトを起動し**gem install rails**でインストール
  
```
C:\>gem install rails
```
 

#Rails動作確認  
1. 作業用フォルダ作成  
Railsプログラムの置き場所を作ります。（とりあえず**C:\pgm**を定位置に）
  
```
C:\>mkdir c:\pgm
```
　
2. Rails Applicationの作成
先ほど作成した作業フォルダへ移動し"rails new hoge"(hogeはアプリ名)でRailsアプリを作ります。必要なGemやらをbundlerで一緒にインストールしているため、少し時間が掛かります。
    
```
C:\>CD c:\pgm
C:\pgm>rails new hoge
```
　
3. Rails Applicationの起動と確認
先ほど作成した作業フォルダへ移動し**rails s**でRailsアプリを起動

  
```
C:\PGM\>CD hoge
C:\PGM\hoge>rails s
=> Booting Puma
=> Rails 5.0.0 application starting in development on http://localhost:3000
.....
```

上記メッセージが表示されたら、ブラウザを立ち上げ[既定ページ(http://localhost:3000)](http://localhost:3000)へ。インストールが成功していたら地球の上に立つお友達が見えます。
![capt_025.png](https://qiita-image-store.s3.amazonaws.com/0/81855/94355fe1-7e23-bfb7-8c9a-99b6d1ad7a48.png)


以上終了。うまく流れれば1時間掛からずにインストール完了です。

#もろもろ  

##RubyバージョンとSQLite3のバージョン不適合の件。
Railsのアプリを作るところで爆発します。(SQLite3なんて無いぜ！LoadError sqlite3 がでます)  

`C:\Ruby23-x64\lib\ruby\gems\2.3.0\gems\sqlite3-1.3.11-x64-mingw32\lib\sqlite3.rb:6:in ```require':cannot load such file -- sqlite3/sqlite3_native (LoadError)
`
  
- SQLite3をコンパイルしバイナリファイルを作りRuby2.3に手動でインストールする方法
- pikなどのRubyバージョン管理ソフトを入れてバージョンを変更し、Railsをインストールするところからやり直す方法

などあります。やってしまった私は後者pikを入れ2.3.1と2.2.5の共存環境を作り、2.2.5でRailsが動く環境にしています。
 
```
C:\>pik list
=> ruby-2.2.5-p319
   ruby-2.3.1-p112
```
 

##参考URL
[あらためてBundlerに関して理解する](http://qiita.com/windhorn/items/794f3ed50a61bf064f62)
[rubyinstaller-2.2.3のインストール時にsqlite3で躓いた時](http://qiita.com/ozy-san/items/1da7c28e72c5f65e22be)
[Windows で SQLite3 の 64bit バイナリを自分で作る](http://qiita.com/akaneko3/items/0e99c3c1366dfbad006f)
[Windows7にRubyInstaller+Pikで複数バージョンのRuby環境を整える](http://heroween.hateblo.jp/entry/2014/07/04/144309)