[Ruby]環境構築（Windows11）

## 1. Ubuntuのインストール
Microsoft Storeにて、「Ubuntu」をダウンロードする。
https://apps.microsoft.com/detail/9pn20msr04dw?hl=ja-JP&gl=US

ダウンロードしたファイルは以下。（2024/05/04時点）
・Ubuntu 22.04.3 LTS Installer.exe

ユーザーとパスワードを設定する。

Ubuntuのパッケージファイルを最新化する。
```bash:
sudo apt update
sudo apt update -y
```

作業用フォルダとシンボリックリンクを作成しておく。
```bash:
mkdir /mnt/c/Code
ln -s /mnt/c/Code ~/Code
```

## 2. rbenvのインストール
rbenvをインストールする。
```bash:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
```

パスを設定する。
```bash:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
```

正常にインストールされていることを確認する。
```bash:
rbenv -v
```


>$ rbenv -v
rbenv 1.2.0-91-gc3ba994

ruby-buildの推奨するパッケージ一式をダウンロードする。
root権限で実行したいので、以下のコマンドを実行する。
```bash:
sudo su -
```

以下を参照してコマンドをコピーする。

https://github.com/rbenv/ruby-build/wiki#suggested-build-environment

コマンドを実行する。（2024/05/04時点）
```bash:
apt-get install autoconf patch build-essential rustc libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libgmp-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev uuid-dev
```

## 3. Rubyのインストール
Rubyをインストールする。
```bash:
rbenv install 3.2.4
```
rbenvに利用するバージョンを設定する。
```bash:
rbenv global 3.2.4
```
正常にインストールされていることを確認する。
```bash:
ruby -v
which ruby
```
>$ ruby -v
ruby 3.2.4 (2024-04-23 revision af471c0e01) [x86_64-linux]

>$ which ruby
/home/yuta/.rbenv/shims/ruby

Rubyのパッケージ管理ツール「RubyGems」をアップデートする。
```bash:
gem update --system
```
1回目の実行で更新され、2回目の実行で以下が表示されることを確認する。
>$ gem update --system
Latest version already installed. Done.

Gemのバージョンを確認する。
```bash:
gem -v
```
>$ gem -v
3.5.10

Gemの一覧を確認する。
```bash:
gem list
```
>$ gem list
*** LOCAL GEMS ***
abbrev (default: 0.1.1)
base64 (default: 0.1.1)
benchmark (default: 0.2.1)
bigdecimal (default: 3.1.3)
bundler (default: 2.5.10)
cgi (default: 0.3.6)
csv (default: 3.2.6)
date (default: 3.3.3)
debug (1.7.1)
delegate (default: 0.3.0)
did_you_mean (default: 1.6.3)
digest (default: 3.1.1)
drb (default: 2.1.1)
english (default: 0.7.2)
erb (default: 4.0.2)
error_highlight (default: 0.5.1)
etc (default: 1.4.2)
fcntl (default: 1.0.2)
fiddle (default: 1.1.1)
fileutils (default: 1.7.0)
find (default: 0.1.1)
forwardable (default: 1.3.3)
getoptlong (default: 0.2.0)
io-console (default: 0.6.0)
io-nonblock (default: 0.2.0)
io-wait (default: 0.3.0)
ipaddr (default: 1.2.5)
irb (default: 1.6.2)
json (default: 2.6.3)
logger (default: 1.5.3)
matrix (0.4.2)
minitest (5.16.3)
mutex_m (default: 0.1.2)
net-ftp (0.2.1)
net-http (default: 0.4.1)
net-imap (0.3.4.1)
net-pop (0.1.2)
net-protocol (default: 0.2.1)
net-smtp (0.3.4)
nkf (default: 0.1.2)
observer (default: 0.1.1)
open-uri (default: 0.3.0)
open3 (default: 0.1.2)
openssl (default: 3.1.0)
optparse (default: 0.3.1)
ostruct (default: 0.5.5)
pathname (default: 0.2.1)
power_assert (2.0.3)
pp (default: 0.4.0)
prettyprint (default: 0.1.1)
prime (0.1.2)
pstore (default: 0.1.2)
psych (default: 5.0.1)
racc (default: 1.6.2)
rake (13.0.6)
rbs (2.8.2)
rdoc (default: 6.5.1.1)
readline (default: 0.0.3)
readline-ext (default: 0.1.5)
reline (default: 0.3.2)
resolv (default: 0.2.2)
resolv-replace (default: 0.1.1)
rexml (3.2.5)
rinda (default: 0.1.1)
rss (0.2.9)
ruby2_keywords (default: 0.0.5)
rubygems-update (3.5.10)
securerandom (default: 0.2.2)
set (default: 1.0.3)
shellwords (default: 0.1.0)
singleton (default: 0.1.1)
stringio (default: 3.0.4)
strscan (default: 3.0.5)
syntax_suggest (default: 1.1.0)
syslog (default: 0.1.1)
tempfile (default: 0.1.3)
test-unit (3.5.7)
time (default: 0.2.2)
timeout (default: 0.3.1)
tmpdir (default: 0.1.3)
tsort (default: 0.1.1)
typeprof (0.21.3)
un (default: 0.2.1)
uri (default: 0.12.2)
weakref (default: 0.1.2)
yaml (default: 0.2.1)
zlib (default: 3.0.0)

Bundlerをインストールする。
```bash:
gem install bundler
```
（後で追記：Bundlerのコマンド）

## 4. Railsのインストール

Railsをインストールする。
```bash:
gem install rails -v 7.1.3.2
```
正常にインストールされていることを確認する。
```bash:
rails -v
```
>$ rails -v
Rails 7.1.3.2

Node.jsをインストールする。（18:recommended、20:current）
```bash:
#curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install nodejs
```

## 5. データベース（PostgreSQL）のインストールとセットアップ

PostgreSQLをインストールする。
```bash:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" >/etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql
```

正常にインストールされていることを確認する。
```bash:
psql -V
```
>$ psql -V
psql (PostgreSQL) 16.2 (Ubuntu 16.2-1.pgdg22.04+1)

PostgreSQLを起動する。
```bash:
sudo service postgresql start
```

Ubuntuのログインユーザー名を確認する。
```bash:
whoami
```
>$ whoami
yuta

Ubuntuのログインユーザー名でデータベースユーザーを作成する。
```bash:
sudo su postgres -c 'createuser -s yuta'
```
コンソールを立ち上げて動作を確認する。
```bash:
psql postgres
```
>$ psql postgres
psql (16.2 (Ubuntu 16.2-1.pgdg22.04+1))
Type "help" for help.
postgres=# \q

RailsからPostgreSQLを扱うためのgem「pg」が利用するパッケージを、あらかじめインストールする。
```bash:
sudo apt install libpq-dev
```

## 6. Railsを動かす
作業用フォルダに移動する。
```bash:
cd Code
pwd
```
>$ pwd
/home/yuta/Code

Railsアプリケーションのひな型を生成する。
```bash:
rails new scaffold_app -d postgresql
```
生成されたファイルを確認する。
```bash:
cd scaffold_app
ls
```
>$ ls
Dockerfile
Gemfile
Gemfile.lock
README.md
Rakefile
app
bin
config
config.ru
db
lib
log
public
storage
test
tmp
vendor

データベースを作成する。（PostgreSQLを起動した状態で実行する）
```bash:
bin/rails db:create
```
>$ bin/rails db:create
Created database 'scaffold_app_development'
Created database 'scaffold_app_test'

サーバを起動する。
```bash:
bin/rails s
```

以下にアクセスする。
http://127.0.0.1:3000

（やったぜ！）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/512307/78d14fa5-acbc-20b0-d424-987020bec58b.png)