Railsの環境構築

# はじめに
Rubyも書いたことない、webアプリも作ったことない人が`Rails7`環境構築やってみた編です。
今回はローカル環境で1からRailsを立ち上げるところまでのメモ程度です。
そして作者は深夜テンションです。ご了承ください

行ってみよー:sunglasses:

# 作者の環境
- macOS (Venture 13.4)
- Ruby 3.3.5
- データベース（ここではPostgres）
- Rails 7.2
- Homebrew 4.3.19

# 0. Rubyの確認

実はMacにRubyは標準でインストールされてたりするので、すぐにRubyを使うことが可能です。
もしかしたら、すでにRubyが入っている可能性があるので、確認しましょう。

ターミナルで以下のコマンドを実行して下さい。
```console
$ ruby -v
```
>RailsではRubyバージョン3.1.0以降が必須です。これより低いバージョンが表示された場合は、新たにRubyをインストールする必要があります。

良さげなバージョンが出てきたらインストールされているので、次に進んでください。
Ruby入ってなさそうだったら、[Ruby](https://www.ruby-lang.org/ja/documentation/installation/)を参考にするのもよし、homebrewを入れるところから説明するよ。

# 1. Homebrewを入れてみよう
`rbenv`というツールを用いてRubyをインストールできます。rbenvは複数のバージョンのRubyを簡単に管理できます。
rbenvをインストールするために、Homebrewが必要なので手順を紹介しまーす。

最初に、Homebrewがインストールされていないことを確認して下さい。ターミナルで以下のコマンドを実行することで確認できます。
```console
$ brew -v
```
バージョン出てきたら入ってます。出てこなかった人は、このまま読み進めてね。
出てきた人は[こっち](#2-rbenvのインストール)。

Homebrewをインストールするには、以下のコマンドを実行します。
```console
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
途中で PCにログインする時の使用しているパスワード や Enterキー の入力を求められますので、入力して下さい。

なんか、`successful`的なこと書いてたら、インストールできてると思います。
一応、上の方で紹介したバージョン確認コマンドを実行してみて下さい。

インストールできていれば次に進んでください。

# 2. rbenvのインストール
今までと同じように、すでに`rbenv`がインストールされているのか確認しましょう。
```console
$ rbenv -v
```
`zsh: command not found: rbenv` と表示された人はrbenvがインストールされていません。

一方、rbenv 1.3.0（数字の部分は値が異なる場合があります）のように表示された場合はすでにrbenvがインストールされていますので、[次へ](#3-rubyのインストール)進みましょう。

`rbenv`がなかった人は、以下のコマンドをターミナルで実行して、rbenvをインストールしましょう。
### 2-1 rbenvのインストール
```console
$ brew install rbenv ruby-build
```
今までと同じく、インストールできたかを確認するには`rbenv -v`など実行してバージョン確認などしてみましょう。

インストールできましたら、インストールした`rbenv`の設定をしておきましょう。

### 2-2 rbenvの初期化と設定

以下のコマンドを実行すると、rbenvの初期化の設定を.zshrcファイルに書き込み、反映させることができます。
```console
$ echo 'export RBENV_ROOT="$HOME/.rbenv"' >> ~/.zshrc
$ echo 'export PATH="$RBENV_ROOT/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(rbenv init -)"' >>  ~/.zshrc
```
続いて次のコマンドを実行してください。 以下のコマンドを実行すると、.zshrcファイルの設定を反映させることができます。
```console
$ source ~/.zshrc
```
これらのコマンドは、実行しても特に何も表示されません。

これでrbenvの設定は完了:tada:
> https://github.com/rbenv/rbenv

# 3. Rubyのインストール

Ruby をインストールする前に、ビルド環境に必要なツールとライブラリがあることを確認してください。次に、次の手順を実行します。
```console
# list latest stable versions:
$ rbenv install -l

# list all local versions:
$ rbenv install -L

# install a Ruby version:
$ rbenv install 3.3.5
```
#### 1. ローカルで利用
このマシン全体のデフォルトRubyバージョンを 3.3.5 に設定したい人向け。
```console
$ rbenv local 3.3.5
# 現在のディレクトリに .ruby-version が作成される

$ ruby -v
# ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [arm64-darwin22]
```
#### 2. グローバルで利用
現在のディレクトリ（またはプロジェクト）専用のRubyバージョンを 3.3.5 に設定したい人向け。
```console
$ rbenv global 3.3.5
# ~/.rbenv に version が作成される  
# .ruby-version が存在しないディレクトリに移動

$ ruby -v
# ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [arm64-darwin22]
```
1.か2.の方法でインストールできたら、次に通常どおり gem のインストールに進みます。

### Ruby バージョンをアンインストールしたい人へ
時間が経つにつれて、インストールした Ruby のバージョンが ~/.rbenv/versionsディレクトリに蓄積されていくと思うんですよね。

古い Ruby バージョンを削除するには、`rm -rf`で削除するバージョンのディレクトリを指定するだけです。
特定の Ruby バージョンのディレクトリは`rbenv prefix`、たとえば `rbenv prefix 2.7.0`というコマンドで見つけることができます。

# 4. Gemのインストールしよう
Ruby では便利なライブラリが多数存在しており、それらはGemといいます。
Ruby on Rails というフレームワークも Gem の一つです。
Gemを使うと色々依存関係を管理しないといけなくて...めんどくさいですよね。

そんな時に、面倒な依存関係を管理するために使用するのが、Bundler！
(Bundler 自体も Gem の一つ。)
```console
$ gem install bundler
```

:::note warn
警告
>gem のインストールにはsudo を使用しないでください。通常、Ruby バージョンはホーム ディレクトリにインストールされるため、ユーザーは書き込み可能です。gem のインストール時に「書き込み権限がありません」というエラーが表示される場合は、システムの Ruby バージョンがまだグローバル デフォルトになっている可能性があります。これを に変更してrbenv global <version>、もう一度試してください。
:::

以下のコマンドで、gem がインストールされている場所を確認できます。
```console
$ gem env home
# => ~/.rbenv/versions/<version>/lib/ruby/gems/...
```

# 5. Railsのインストール
Railsをインストールするには、gemコマンドを使います。
```console
$ gem install rails
```
もしも、バージョン指定をしてダウンロードしたい場合は以下のコマンドを参考にしてください。
```console
$ gem install rails -v 7.2.1
```
入ったかどうかを確認するために、以下の文を実行してください。
 Railsのバージョンが出てきたら次に進んでください。
```console
$ rails -v
```

# 6. Railsアプリケーションの作成
アプリケーションを作りたいディレクトリまで移動してください。
```console
$ rails new アプリ名
```
これにより、**アプリ名**という名前のRails アプリケーションが **アプリ名** ディレクトリに作成され、Gemfileというファイルで指定されているgemファイルがbundle installコマンドによってインストールされます。

# 参考文献
- [Rails ガイド](https://railsguides.jp/getting_started.html)
- [Rails](https://www.ruby-lang.org/ja/documentation/installation/)