Windows10でRuby on Rails の環境構築

#Windows10でRubyonRailsでの開発環境を整える
仕事で開発環境を整えることがあった時に、最新情報をまとめているものが無くて多少手間取った為まとめておきます。
##Windows Subsystem for Linuxのインストール 
以下の手順でインストールする
スタートメニュー
設定
Windowsの設定の検索タブに「Windowsの機能の有効化または無効化」を検索してクリック

![image.png](https://qiita-image-store.s3.amazonaws.com/0/128358/b2eeb636-a04b-ed8e-0b98-b8423fb0c87d.png)

下記ウインドウが表示されたら、Windows Subsystem for Linuxを探してチェックを入れてOKを押下
（インストールウインドウが表示され再起動が必要になるので再起動する）
β版の時は、この操作の前に「開発モードを有効にする」という設定手順が必要だったみたいですが、現在は不要です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/128358/b81a9abf-d5f4-05b8-fe9c-f5eadba37db6.png)

##Linuxのインストール
MicrosoftStoreから、Linuxを検索してダウンロード
現在ストアにあるLinuxは画像の５種
Ubuntuしか使ったことないので、今回はUbuntuをインストール
Ubontuのversionは16.04LTS(2018-07-25現在)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/128358/74117286-8d80-1ba9-0855-d360d7a6d565.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/128358/7205015a-04c7-dff9-9ad3-fdb6df661e36.png)

インストール後一応versionの確認
![image.png](https://qiita-image-store.s3.amazonaws.com/0/128358/5ef22fff-91ce-756d-90e1-d21f25802c4d.png)
##Ubontuのアップデート
インストールのバージョンは最新ではない為、以下のコマンドを実行し、最新にアップデートする
コマンドは上から、
リポジトリを日本サーバーに変更（通信改善の為）
リポジトリ一覧を更新
パッケージを更新

```
sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.list

sudo apt update

sudo apt upgrade
```
更新後のUbuntuのバージョン確認
![image.png](https://qiita-image-store.s3.amazonaws.com/0/128358/cd035668-2ecf-2c90-f0f8-97be148893a0.png)
##Windowsのコマンドラインからbashが使用可能か確認する
やりたかったことの一つ、win+Rで「ファイル名を指定して実行」を起動しcmdを入力しEnter
コマンドラインの起動を確認し、bashを打ち込むと以下の画面になる
![image.png](https://qiita-image-store.s3.amazonaws.com/0/128358/b74dfabe-ceab-ac4e-8099-10dc756852dc.png)

#開発ツールのインストール
gitのインストール
途中に聞かれるパスワードはUbuntuで最初に設定したパスワードを入力

```
sudo apt-get install git
```
rbenvをインストール。
rbenvはRubyのバージョン管理ツール

```
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
```

.bashrcに以下のパス設定を追加し、再読み込み


```
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

source ~/.bashrc

```

##Rubyのインストール
コンパイルに必要なものを先にダウンロードし
rbenvでRubyをインストールする
現状のバージョンが2.5.1のなのでそれをインストール。
ruby-vでインストールしたバージョンの確認。

```
sudo apt-get install gcc build-essential libssl-dev libreadline-dev zlib1g-dev

rbenv install 2.5.1

rbenv rehash

rbenv global 2.5.1

ruby -v
```
##Ruby on Railsのインストール
Railsのインストール前に、bundlerを入れ
作業用のフォルダーを作成。

```
gem install bundler

mkdir rails_on_windows

cd rails_on_windows

bundle init
```

作成されたGemfileを編集

```
 vi Gemfile
```
gem "rails"を探しコメントアウトを外す
編集したらEsc押下後　:wqを入力しEnter（保存して終了

```
source "https://rubygems.org"

- # gem "rails"
+ gem "rails"
```
一応保存されているか確認

```
cat Gemfile
```
Nokogiriの設定

```
gem update --system

sudo apt-get install libxml2 libxml2-dev libxslt-dev

bundle config build.nokogiri "--use-system-libraries --with-xml2-include=/usr/include/libxml2"
```
bundle installでRailsとSQLiteを入れる（sqlite3-rubyがあるのでそちらでもいい

```
bundle install --path vendor/bundler

sudo apt-get install libsqlite3-dev

```

Railsプロジェクトを作成

```
bundle exec rails new . --skip-bundle

```
Node.jsをインストール(Railsの起動にJavaScriptのランタイムがいる為

```
sudo apt-get install nodejs

sudo apt-get install npm

```
最後のインストールしてRails以外のgemを入れ、Railsを起動する

```
bundle install

bin/rails s
```
##ブラウザでRailsの確認

ブラウザで`http://localhost:3000`にアクセスして以下の画面が出れば終了。
サーバーを止めたい場合はCtrl＋cで止まります
![image.png](https://qiita-image-store.s3.amazonaws.com/0/128358/b50c1d46-9c42-228c-7743-78cea6ae5f11.png)

#感想
windowsでrailsがうまく動かなかったり、開発環境が整ってなかったりしたので調べながらまとめてやっていたら６時間ぐらいたってました。
まとめを見ながらサクサクやれれば１時間ぐらいで終わると思うので、ばしばしwindowsでrailsの開発をしてください。
間違っている部分や、不足している場所があればいつでもどうぞ

#参考文献
- [aptコマンドチートシート](https://qiita.com/SUZUKI_Masaya/items/1fd9489e631c78e5b007)
- [Windows Subsystem for Linuxをインストールしてみよう！](https://qiita.com/Aruneko/items/c79810b0b015bebf30bb#bash%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB-fall-creators-update%E4%BB%A5%E9%99%8D)
- [windowsのbashでRails環境を構築してみる。（Windows 10 Anniversary Update版）](https://qiita.com/chimame/items/8130aa2c07a152a865b1)
- [sqlite3をUbuntuにインストール](https://yatta47.hateblo.jp/entry/2015/03/12/224237)
- [Ubuntu でapt を使用してNode.js をインストールする3 つの方法](https://qiita.com/TsutomuNakamura/items/7a8362efefde6bc3c68b)
- [therubyracer 0.11.0 問題まとめ](http://suu-g.hateblo.jp/entry/20121222/1356189597)