RubyとRailsインストール

一応私の環境の紹介
OS centOS-7(1810)

##rbenv
これは既に入れたが、使い方を知らなかった。多くのサイトではこれを用いてRubyをインストールしているので、なんとなく入れた。いい機会なので少々調べてみた。
下のサイトが配布元であり、導入法がどこのサイトよりもわかりやすいと思う。今回の記事もこのサイトに沿って書いてある。
https://github.com/rbenv/rbenv

###概要
Rubyのバージョンを簡単に切り替えるためのツール。Bundlerと組み合わせるとRubyがストレスフリーになるらしい。
rbenvはパスの最初に挿入することで働く。
`~/.rbenv/shims:/usr/local/bin:/usr/bin:/bin`
rehashingと呼ばれるプロセスによって、rbenvは、すべてのインストールしたRubyのバージョンのコマンドに対応する。

###OSの動き
```
$ ruby
```
とターミナルで入力すると、OSは登録されているPATHからrubyという名前の実行ファイルを探す。`~/.rbenv/`以下のshimsディレクトリから、rubyという名の実行ファイルを起動する。

###rubyバージョン選択
shimを実行すると、rbenvはrubyのバージョンを以下の順序で決定する。

1. RBENV_VERSION環境変数を参照。`rbenv shell`コマンドで変数のセットができる。
2. 作業ファイルのあるディレクトリからrootまで`.ruby-version`を探す。
3. カレントディレクトリからrootまで`.ruby-version`を探す。
4. `~/.rbenv/version`を参照。このファイルは`rbenv global`で修正可能。

[rbenv | global と local と .ruby-version の微妙な関係](https://qiita.com/Yinaura/items/0b021984bb21ae77816d)

###rubyインストール場所
`~/.rbenv/versions`ディレクトリ配下

###インストール方法
#####Macの場合

```
$ brew install rbenv	#ruby-buildも一緒にインストールされる
$ rbenv init
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
```

#####その他

その前に使用しているシェルの確認をする。
現在利用可能なシェルの確認

```
$ cat /etc/shells
```

現在利用中のシェルの確認

```
$ echo $SHELL
```

僕の場合はbashを利用している。というより、一番普通なのがbashだと思う。より高機能なシェルや、C言語ユーザーに適したシェルもあるが、この記事を見るような人は、僕のような初心者が多いだろうから、デフォルトのbashが無難だろう。

```
 # クローンを~/.rbenv以下に生成
 $ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
 
 # 次の行は、rbenvの高速化するために行う。失敗しても気にしないでOK
 $ cd ~/.rbenv && src/configure && make -C src #この行は無視しても構わない。
 
 # ~/.rbenv/binへのパスを追加する。以下使用シェルによってコマンドが違うので注意
 # bashの場合
 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
 # Ubuntu Desktopの場合
 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
 # Zshの場合
 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
 # Fish shellの場合
 $ set -Ux fish_user_paths $HOME/.rbenv/bin $fish_user_paths
 
 # rbenvのセットアップ。このコマンド実行時下の初期化処理を促す文が表示される。
 $ ~/.rbenv/bin/rbenv init
 
 #初期化の処理をログイン時に一回行うようにする。
 $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
 
 # 適切なインストールがされたかの確認
 $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
 ```

ちなみにGitを利用する方法(上でいうところのその他のOS)でインストールした場合、Gitを利用して最新版にアップグレードできる。

```
$ cd ~/.rbenv
$ git pull
```

###ruby-build(rbenvプラグイン)インストール
ruby-buildはrbenvのプラグインであり、`rbenv install`コマンドを利用可能にし、rubyのインストールが楽になる。ぜひ入れておくとよいだろう。

```
# Macの場合
$ brew install ruby-build
 
# rbenvのプラグインとしてインストールする場合
$ mkdir -p "$(rbenv root)"/plugins
$ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build

# rbenvを利用しない場合(スタンドアロンなプログラムとして)
$ git clone https://github.com/rbenv/ruby-build.git
$ PREFIX=/usr/local ./ruby-build/install.sh
```

ちなみに、アップグレードは以下のようにできる。

```
 # Homebrew使用者の場合
 $ brew update && brew upgrade ruby-build
 
 # rbenvのプラグインとして利用している場合
 $ cd "$(rbenv root)"/plugins/ruby-build && git pull
```

##Rubyインストール
ここではrbenvを利用してrubyをインストールします。
rbenvを利用しない方法は、割と簡単でしたので、調べてください。
私でもrbenv無しで最新版をインストールできたので楽勝です！(笑)
(今は私はrbenvを利用しています。)

```
 # インストール可能なバージョンのリストを表示
 $ rbenv install -l
 # バージョン指定し、インストール(今の最新バージョンは2.6.~じゃなかったけ？)
 $rbenv install 2.0.0-p247
```

###Gemインストール
`rbenv version`で使用したいバージョンであるかどうかを確認したのち、Gemをインストールする。

まず、次のコマンドで、使用するバージョンを決定する。
Userのディレクトリ全体で使用するRubyのバージョンを指定。

```
$ rbenv global (your ruby version)
(例)
$ rbenv global 2.6.3
```

また、Rubyのバージョンを使い分ける場合は、カレントディレクトリで使用したいRubyのバージョンを選択する。
(注意)必ずしもディレクトリごとに使用するバージョンを設定する必要はない。したい人だけすればよい。ちなみに僕はしていない。

使用したいディレクトリにcdコマンドで移動してから

```
$ rbenv local (your ruby version)
(例)
$ rbenv local 2.6.3
```

次にGemの管理ツールBundlerをインストールする。

```
$ gem install bundler
ちなみにGemのインストール場所を確認するには、
$ gem env home
```

とでもすればいい。

###rbenvコマンド
例として以下を挙げる。
その他のコマンドを知りたい方は、[ここをチェック](https://github.com/rbenv/rbenv)

|コマンド|説明|
|:--------------|:-----------------------------------|
|rbenv          |shellRBENV_VERSION環境変数をセットする|
|rbenv local	|.ruby-versionファイルを修正する       |
|rbenv global	|~/.rbenv/versionファイルを修正する    |

##Railsインストール
まずデータベースをインストールする。
ここでは、sqlite3を例にとる。

```
$ sudo yum install sqlite
```

インストールしたら、sqlite3のバージョンを確認し、正しくインストールできているか確認する。

```
$ sqlite3 --version
```

正しく、バージョン名が返されれば、インストールはできているので次に進もう。
次はいよいよRailsをインストールする。

```
$ gem install rails
```

ここで再び、インストールの確認のため、バージョンの確認をする。

```
$ rails --version
```

正しく、バージョン名が返されれば、インストールはできている。

###ハローワールド
Railsがインストールできたので、さっそくハローワールドしていこう。
まず、以下のコマンドを実行すると、blogディレクトリがカレントディレクトリに生成され、blogディレクトリ内にblogという名のアプリケーションが作られる。また、このアプリに必要なGemも、上の作業で`bundle install`したときに生成されたGemfileの内容に従ってインストールされる。

```
$ rails new blog
```

次にblogディレクトリに移動し、WEBサーバーを起動させる。このWEBサーバーはPuma(プーマ)というRailsのデフォルトのサーバーです。

```
$ cd blog
$ bin/rails server
```

このコマンドが実行できたら、ブラウザを開き、`http://localhost:3000` にアクセスします。
(注意)
私のように、VPSなどをCLIで利用している人は`http://localhost:3000`ではアクセスできません。

```
$ bin/rails server -b 0.0.0.0
```

などとし、外部から接続可能にしましょう。
このときは、`http://(リモートPCのIPアドレス):3000`でアクセスしましょう。
これでもできない場合はfirewallの設定で3000ポートが解放されていない可能性があります。
次のコマンドで3000ポートを開放します。

```
$ firewall-cmd --zone=public --add-port=3000/tcp
```

できましたら、アクセスしてみましょう。今度はできるはずです。多分...
アクセス確認できましたら、ポート開けっ放しはセキュリティ的にどうかと思うので、閉じましょう。
また使用したいときに開放すればいいのですから。

```
$ firewall-cmd --zone=public --remove-port=3000/tcp
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354859/380e6db9-ba19-b846-4d1b-3d47809d0d2e.png)

>https://railsguides.jp/getting_started.html

このページが正しく開いたら成功です！
起動中のサーバーを停止するにはCtrl+Cを入力してください。


引き続き頑張っていきましょう！