【自分用メモ】Ruby on Railsの環境構築(Windows)

#<b>目的</b>
WindowsでRuby on Railsの環境構築を行った際に詰まったところを自分への備忘録として振り返ります。※Ruby6.0.0以前の手法になります。

こちらを参考にさせていただきました。
[Ruby on Railsの環境構築をしてみよう！(Windows) - Progate](https://prog-8.com/docs/rails-env-win)
[Devkit を Windows7 にインストールする手順 - Qiita](https://qiita.com/tqer39/items/b274e4c273e30126526f)
[msys2 と GNU ツールチェーン類 (gcc, g++, gfortran, findutils ...](https://www.kkaneko.jp/tools/win/msys2.html)
[Windowsで異なるバージョンのRubyを使う方法(uru) - Qiita](https://qiita.com/kunosu/items/bff9638117d61205a5ca)

#Rubyのインストール
[Downloads - Ruby Installer](https://rubyinstaller.org/downloads/)
太字になっている「[Ruby+Devkit 2.6.6-1 (x64) ](https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.6-1/rubyinstaller-devkit-2.6.6-1-x64.exe)」のRubyInstallerをダウンロードし、インストールを進めました。
ただMSYS2をインストールする際に「Installation failed」というエラーが発生。
![WS000417.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/e88f9546-6f18-a54e-6177-f1d8092733bc.jpeg)
ちなみに、FWを落としても同じ事象が発生しました。 そのため、個別にインストールしていくことにしました。

#<span style="font-size: 150%"><b>まずRubyのインストール</b></span>
[Downloads - Ruby Installer](https://rubyinstaller.org/downloads/)から[ Ruby 2.6.6-1 (x64)](https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.6-1/rubyinstaller-2.6.6-1-x64.exe)のインストーラをダウンロードし、ダブルクリック
問題なければ「I accept the License」を選択
![WS000510.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/0d72f275-fc52-7b3e-62d0-df7ea2a33c94.jpeg)

「Add Ruby exexutables to your PATH」、「Associate .rb and .rbw files with this Ruby installation」、「Use UTF-8 as default external encoding」のチェックはつけたまま、[Install]をクリック
![WS000511.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/27810286-a8de-1aa1-4e82-bc32b3f2821c.jpeg)
![WS000512.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/9f3c8141-737c-9156-b49e-eced2642bf19.jpeg)

「Run 'ridk install' to setup MSYS2 and development toolchain.」のチェックは外して[Finish]をクリック
![WS000513.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/30162424-52d0-ef24-78af-bbe7837def7e.jpeg)
これでRubyのインストールは終了です。

念のため、アンチウィルスソフト(私の環境ではWindows Defender)の除外欄に「C:\Ruby26-x64」を追加しておきました。
![WS000590.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/9f4011ad-c316-bdaa-6c3a-16adc654a3ab.jpeg)

#<span style="font-size: 150%">Devkitのインストール</span>
[Download Archives - Ruby Installer](https://rubyinstaller.org/downloads/archives/)
上記サイトの右下の[Devkit](https://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe)のインストーラをダウンロード
インストーラ(7zの自己解凍ファイル)をダブルクリックし適当なフォルダを選択し、[Extract]をクリック
![WS000591.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/cfaa00ce-c39e-6150-92c5-17edd12f7a85.jpeg)

下記コマンドを実行し、config.ymlを生成

```cmd.exe

> cd c:\opt\devkit
> ruby dk.rb init
[INFO] found RubyInstaller v2.6.6 at C:/Ruby26-x64

Initialization complete! Please review and modify the auto-generated
'config.yml' file to ensure it contains the root directories to all
of the installed Rubies you want enhanced by the DevKit.

```

config.ymlが生成されました。
![WS000592.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/877b9608-461a-ebb7-29e3-7879ae395d4e.jpeg)

config.yml をエディタで開き、Rubyのパスが指定されていなければ指定します。
![WS000548.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/9c2dae73-79bb-a7a3-d87a-f2833ed7fa34.jpeg)

Devkitのインストール
下記コマンドを実行します。

```cmd.exe
> ruby dk.rb install
[INFO] Updating existing gem override for 'C:/Ruby26-x64'
[INFO] Installing 'C:/Ruby26-x64/lib/ruby/site_ruby/devkit.rb'
```

#SQLite3のインストール
[SQLite Download Page](https://www.sqlite.org/download.html)

Sqlite3のダウンロードページで「Precompiled Binaries for Windows」のところを確認し「[sqlite-dll-win64-x64-3330000.zip](https://www.sqlite.org/2020/sqlite-dll-win64-x64-3330000.zip)」、「[sqlite-tools-win32-x86-3330000.zip](https://www.sqlite.org/2020/sqlite-tools-win32-x86-3330000.zip)」ダウンロード。
![WS000549.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/2a9d49a7-a640-f7e5-164a-fbf0811499d5.jpeg)
ダウンロードしたフォルダを解凍し「sqlite3.dll」、「sqlite3.exe」というファイルを「C:¥Ruby26-x64¥bin」へコピーします。
(※sqlite3.exeは32bit版しかありませんが、64bitにも対応しているようです。)
![WS000550.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/8687dbd7-8153-3b02-0782-f4a9c16ee74f.jpeg)

ここまで来て、「gem install rails -v "5.2.3"」のコマンドを実行すると、ridk installのコマンドを実施するか、
MSYS2をインストールしてくださいという旨のメッセージが出ました。

#MSYS2をインストール
[MSYS2](https://www.msys2.org/#installation)のサイトより[msys2-x86_64-20200903.exe](https://repo.msys2.org/distrib/x86_64/msys2-x86_64-20200903.exe)をダウンロード。
先に[コントロールパネル]-[システムとセキュリティ]-[システム]-[環境変数(N)]より環境変数を設定します。


● システム環境変数MSYSTEM: MINGW64

● システム環境変数PKG_CONFIG_PATH: /usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig

● システム環境変数Pathの末尾に追加:

- C:\msys64\mingw64\bin
- C:\msys64\usr\local\bin
- C:\msys64\usr\bin
- C:\msys64\bin

![WS000593.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/20b85d32-3199-9889-981c-ce7512285dbf.jpeg)

![WS000595.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/fd4a56e2-0a5c-34b0-71c7-7304afeb6b76.jpeg)

![WS000596.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/06787b97-e08d-6ebc-1d42-3b786ff49398.jpeg)


以下Pathが不要と思われる箇所のスクリーンショットです。
![WS000562.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/5ac3ce46-8eff-1da4-af02-a52dad36f587.jpeg)
![WS000563.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/9188f460-2da9-5438-0595-382cd892bcc6.jpeg)

ダウンロードしたファイルをダブルクリックしインストールを進めます。 インストールの進行状況は以下になります。 [次へ]を押して進めます。
![WS000552.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/da483730-1cb2-b8c0-f1ab-a2bb768b5377.jpeg)
![WS000553.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/18531790-58c5-dea5-1339-26859c852ea6.jpeg)
![WS000554.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/94c4f04f-92a3-911b-c2b5-e5a8becdf11f.jpeg)
![WS000555.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/ed61beed-0450-acbe-e011-1ff3576e9af0.jpeg)
[詳細の表示]を押すと進捗状況が確認できます。
![WS000518.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/372da1dd-5da8-fb3a-27cd-11dfc4422f1c.jpeg)
![WS000557.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/69db13f8-853f-2085-c0ca-30fde9ca6bd4.jpeg)
インストールが終了したら[次へ]を押します。
![WS000558.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/ae871438-e38f-4c10-e9ee-e8f90ff84cf8.jpeg)
インストールが終了したら[次へ]を押します。
![WS000559.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/df159ee4-1717-c3b0-5593-7dca4a29cc9c.jpeg)
 [完了]を押します。
![WS000560.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/acdbbfa1-6471-293a-b7b8-ffb2b6a7a26f.jpeg)
MSYS2のbash画面が起動しますが、一旦閉じます。
![WS000561.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/8d68319d-a119-9409-1ba1-826a5e19380a.jpeg)

MSYS2のbashを管理者として実行します。
ただ私の環境では右クリックのメニューに[ファイルの場所を開く]しかなかったため、一旦ファイルの場所を開きスタートメニューのショートカット群から「MSYS2 MSYS」の[管理者として実行]をしました。
![WS000564.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/93e48687-e201-4123-37a5-15991582e3bb.jpeg)
![WS000565.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/7c88bf8c-4113-70df-aaa1-fca82be0fc80.jpeg)
下記コマンドを実行し環境変数を確認。

```bash:bash
>echo $MSYSTEM

>echo $PATH

>echo $PKG_CONFIG_PATH
```

環境変数が設定できていれば下記のような表示になります。
![WS000566.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/abaafa51-2cdc-75f3-60ba-2821cc1aab1e.jpeg)

下記コマンドを実行し、何か聞いてきたら[y]を入力しEnterキーを押します。

```bash:bash

> pacman -Sy pacman
```

![WS000567.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/94d1ac17-e3fc-efd1-c8de-06dad73da884.jpeg)
![WS000568.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/2d4ceb7d-1d05-0a30-42a5-31d0cf5344a4.jpeg)
![WS000569.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/80782abf-06a6-2dac-f2cd-de1b79a17f10.jpeg)
終わったら、一旦MSYSの画面を閉じます。
もう一度、MSYS2 MSYSを[管理者として実行]します。
![WS000565.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/9741b371-d23f-d968-edc5-8de4e6ad83d0.jpeg)
パッケージデータベースと pacman とコアパッケージの更新
下記コマンドを実行し、何か聞いてきたら[y]を入力し、Enterキーを押します。

```bash:bash
>pacman -Syu
```
![WS000570.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/4a5ee335-1332-cf93-6381-33835888f091.jpeg)
![WS000571.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/fd7966a4-596b-2010-4d74-6f89cb471d61.jpeg)
![WS000572.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/eb31388d-07c5-99f2-39c3-3f0c7d6d1ed7.jpeg)
![WS000573.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/230245ac-561c-ad0b-b0e1-7dda7579d4aa.jpeg)
![WS000574.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/1cc0a57b-ba4f-4430-76e2-7fec0d8751b9.jpeg)
終わったら、一旦MSYS画面を閉じます。

パッケージの更新
再度MSYS2 MSYSを[管理者として実行]します。 下記コマンドを実行します。

```bash:bash
> pacman -Su
```

![WS000575.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/88bc17bc-cec9-71e7-e0e1-447e0677d69c.jpeg)

私の環境では「何も行うことがありません」とメッセージが表示されました。
終わったら、MSYS画面を閉じます。

Windowsのコマンドプロンプトを起動し、下記コマンドを実行します。

```cmd.exe
> where bash

> where ls
```

![WS000576.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/5f765d48-b4d4-1918-e4e9-e733c87d842b.jpeg)
私の環境ではwslをインストールしている影響からか「C:\Windows\System32\bash.exe」が表示されましたが、特に影響はないようです。

#Windows版Rubyのバージョン管理uruをインストール
Ruby on Railsを使う環境によっては違うバージョンのRubyを使い分ける場面が出てくると思いますので、uruをインストールしました。

[jonforums / uru / wiki / Downloads — Bitbucket](https://bitbucket.org/jonforums/uru/wiki/Downloads)より[uru-0.8.5-windows-x86](https://bitbucket.org/jonforums/uru/downloads/uru-0.8.5-windows-x86.7z)のファイルをダウンロード
※32bit版ですが、64bitにも対応しているようです。
![WS000577.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/e2115018-ab0b-7063-9c36-74d45586f465.jpeg)
ダウンロードされた7zを解凍し、適当なフォルダに移動します。
私はC:\opt以下に移動しました。
移動したuruフォルダをパスに通します。
![WS000578.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/1c51923e-5952-81eb-5960-54600119ecae.jpeg)

コマンドプロンプトで下記コマンドを実行します。

```cmd.exe
>uru_rt admin install
---> Installing uru into C:\opt\uru-0.8.5-windows-x86
```

「uru.bat」、「uru.ps1」が生成されます。
![WS000579.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/22997798-773a-9063-a37e-ae171714eaa1.jpeg)

Rubyへのパスをuruに登録します。

```cmd.exe

> uru admin add C:\Ruby26-x64\bin
---> Registered ruby at `C:\Ruby26-x64\bin` as `266p146`
```

uruに登録されたか確認。

```cmd.exe

> uru ls
    266p146     : ruby 2.6.6p146 (2020-03-31 revision 67876) [x64-mingw32]
```

#ridk installを実行
次に、ridk installを実行します。

```cmd.exe

> ridk install

```

![WS000580.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/7c8a20fa-72ac-daaa-243f-f0bb190aab55.jpeg)
[1]を入力し、Enterキーを押します。
![WS000581.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/101a816e-a4f9-7d11-f805-836a370b6e94.jpeg)
すでにインストール済のようです。

[2]を入力し、Enterキーを押します。
![WS000582.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/e65e8aa8-b498-80b6-eb1f-96ddf8f194d9.jpeg)
もう最新の状態のようです。もうエラーも出ていません。

[3]を入力し、Enterキーを押します。
![WS000583.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/30891f03-36ca-d9d0-0cf8-4dbe5e19fce1.jpeg)
インストール進行中です。

![WS000584.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/e5da49e8-1865-c028-5764-a994438c02e1.jpeg)
「succeeded」と表示され正常に終了したようです。
Enterキーを押します。

#Ruby on Railsのインストール
再度コマンドプロンプトを起動し、下記コマンドを実行します。

```cmd.exe
> gem install rails -v "5.2.3"
```

![WS000597.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/74f62559-a870-3363-460a-fe4fc9f1832a.jpeg)

「installed」というメッセージが確認できたのでgemのインストールまで終了したようです。

railsのバージョンを確認してみます。

```cmd.exe
> rails -v
Rails 5.2.3
```

Railsのインストールまで正常終了しました。

#Railsサンプルアプリの作成
サンプルアプリを作ってみましょう。

下記コマンドを実行します。

```cmd.exe
> rails new sample_app -G
```

sample_appはアプリ名ですので自由につけることができます、
-GオプションはGitをインストールしていない場合につけます。

「Bundle complete!」というメッセージが表示され、正常に終了したようです。
NOTICEというところにchromedriver-helperはサポート終了した旨表示が出ていますが、こちらはまたの機会にしたいと思います。
![WS000598.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/36161940-cb41-5725-1455-f2cdde46a698.jpeg)

sample_appという名前のフォルダがあるので、Railsアプリケーションの作成が完了したことになります。
![WS000600.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/36e45ada-aba7-5071-e2ed-f2be737839ba.jpeg)
![WS000599.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/c56bcaaf-93f0-0e6d-a31d-8d28408ee267.jpeg)



#Railsを起動

```cmd.exe
> cd sample_app
```

sample_appフォルダに移動します。

下記コマンドを実行します。

```cmd.exe
> rails s
```

```cmd.exe
rails s
=> Booting Puma
=> Rails 5.2.4.4 application starting in development
=> Run `rails server -h` for more startup options
*** SIGUSR2 not implemented, signal based restart unavailable!
*** SIGUSR1 not implemented, signal based restart unavailable!
*** SIGHUP not implemented, signal based logs reopening unavailable!
Puma starting in single mode...
* Version 3.12.6 (ruby 2.6.6-p146), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
```
「localhost:3000」でサーバが起動しているのがわかります。
![WS000601.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/d53e33a2-f87f-349e-31ac-f2d270ed765a.jpeg)

ブラウザで「localhost:3000」にアクセスしてみます。
![WS000602.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80258/3c99a04d-35b5-fe11-d9d0-41bb4788982f.jpeg)

Railsサーバが起動したことが確認できました。

[Ctrl]+[C]キーを押下し、サーバを止めることができます。

#完了