0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RubyOnRails環境構築の流れ

Last updated at Posted at 2023-03-09

はじめに

Railsを学習する際に、Rubyのバージョン管理やRailsの環境に必要なパッケージのインストールなどよく理解せずにインストールしていました。
動くけどなぜこれが必要なのかを理解せずに進んでいるとモヤッとした気持ちがしたので、少しでも理解するために備忘録として残したいと思います。

前提

Homebrewはインストール済み
MacOs Catalina以降

rbenvをインストール

rbenvとは

Rubyのバージョン管理ツール。
複数のバージョンのRubyを管理してくれる。

#インストール
$ brew install rbenv

#バージョン確認
$ rbnev -v

パスを通すとは

コマンドを検索するパスを設定すること。
パスを通さないと毎回フルパス(ディレクトリ/ディレクトリ/ディレクトリ/実行したいコマンド)を指定してコマンドを実行しなければならない。
そこで、パスを通すことで実行したいコマンド名だけで実行できるようになる。

特定のプログラムのパスが通っているか確認する

表示された一番上のパスが採用される

$ where コマンド名

$ where git 
/usr/local/bin/git  #採用されるパス
/usr/bin/git

パスの設定

$ echo 'export PATH="値"'

設定方法によって、追加するパスの優先順位を変更できます。

#追加したパスの優先順位が既存のパスより高い
$ echo 'export PATH="追加するコマンドのディレクトリパス:$PATH"' >> ~/.zshrc

#追加したパスの優先順位が既存のパスより低い
# echo 'export PATH="$PATH:追加するコマンドのディレクトリパス"' >> ~/.zshrc

=の右側の$PATHは設定している既存のパスです。
優先順位が高い方を先に記述します。

rbenvにパスを通す

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

export $PATH=$HOME/.rbenv/bin:$PATHという記述でもパスを通すことはできるが、ターミナルを閉じると設定が消えてしまう。
そのため~/.zshrcファイルにパスを移すことで設定が消えないようにする。

次にrbenvのshimsを有効にする

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

eval - 文字列を評価(展開)して連結させる。echoコマンドだと単なる文字列として評価されてしまう。

rbenv init - - 以下の処理が実行される
(1) ~/.rbenv/shims を環境変数PATHの先頭に追加する
(2) コマンドの補完用のシェルスクリプトを読み込む
(3) shimのrehash、すなわち rbenv rehash の実行
(4) sh dispatcherをインストールする

上記(3)のrbenv rehashによって~/.rbenv/versions/各バージョン/bin/に配置されたgemのコマンドなど(psec,rubocop)が~/.rbenv/shims/にコピーされる。
そして上記(1)によってパスが通り、バージョンを気にせずコマンドが実行できるようになる。

ではgemを追加したときは、毎回rbenv rehash処理をしなければいけないのか?
違うみたいです。以下引用(rbenv rehashをちゃんと理解する)

実はrbenvは gem install xxx をしたタイミングでhookスクリプトを噛ませていて、それが自動的に rbenv rehash を実行していたのである。よって自分で明示的に rbenv rehash を実行する必要はない。

ターミナルに設定を反映させる

$ source ~/.zshrc

shimsとは

以下引用(Shimの意味)

プログラムのバージョン間の差異を埋める緩衝材のように使う薄いレイヤーみたいなものがShimです。

正直よくわかりませんが、例えば複数のバージョンのRubyで共通するコマンドをいちいち環境別に設定しなくても良くなるということでしょうか?曖昧です。

Rubyのインストール

インストールできるRubyのバージョンを確認する

$ rbenv install --list

エラーが出たら、指定されているコマンドを実行

$ rbenv install --list
ruby-build: definition not found: list
See all available versions with `rbenv install --list'.
If the version you need is missing, try upgrading ruby-build:

  brew update && brew upgrade ruby-build

$ brew update && brew upgrade ruby-build  #実行

バージョンを指定してインストール

$ rbenv install 2.7.5

インストールされたか確認
(systemはMacに標準搭載されているRuby。)

$ rbenv versions
* system  #アスタリスクは現在適用されているバージョンを指している。
  2.6.5
  2.6.6
  2.7.5
  3.1.1 

バージョンを切り替える

$ rbenv global 2.7.5

Ruby2.7.5のバージョンのコマンドを使用できるようにする

$ rbenv rehash

バージョンが切り替わったか確認

$ ruby -v

>> ruby 2.7.5

Mysqlを用意する

Mysqlは最も広く普及しているデータベース。
アプリケーションのデータを保存するために設置します。

インストール

$ brew install mysql@5.7

Mysqlにパスを通す

$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc

#設定を反映
$ source ~/.zshrc

#バージョン確認
$ mysql --version
>> mysql  Ver 14.14 Distrib 5.7.41

#mysqlを起動
$ mysql.server start

#mysqlにルートユーザーとしてログイン
$ mysql -uroot

mysql> #mysqlのプロンプトが表示されたらログイン成功

mysqlの自動起動設定

#Homebrew serviceをインストール
$ brew tap homebrew/services

#mysqlの自動起動を設定する
$ brew services start mysql@5.7

brew tap - 公式以外のものを追加できるHomebrewのサブコマンド。

$ brew tap <userName>/<repository>
#または
$ brew tap <url>

RubyOnRailsをインストール

インストール

$ gem install rails -v '6.1.3.1'

railsコマンドを利用可能にする

$ rbenv rehash

バージョン確認

$ rails -v

>> rails 6.1.3.1

bundlerのインストール

bundlerとは、gemのバージョンや依存関係を管理してくれるもの。

インストール

$ gem install bundler

バージョン確認

$ bundle -v

>> Bundler version 2.3.7

yarnとwebpackerのインストール

yarnは、JavaScriptのパッケージ管理ツール。
Rails6でwebpackerが標準になったことにより、yarnをインストールする必要がある。

webpackerは、Rails上で実行されるJavaScriptの開発に必要なものを実装してくれるパッケージ。
webpackとは複数のファイルをまとめて出力してくれる、モジュールバンドラー。
yarnのインストール

$ brew install yarn

webpackerのインストール

$ rails webpacker:install

node.jsをインストール

node.jsとは

基本的にブラウザ上でのみ動けたJavaScriptを、サーバー上でも動かせるようにしてくれる「実行環境」。
node.jsによって、jacascriptがファイルの読み書きやネットワーク通信ができるようになる。

Node.jsの公式サイトの手順に従ってNode.jsをインストール

Railsアプリ作成

アプリを配置したいディレクトリ
$ rails new バージョン アプリ名

$ rails new _6.1.3.1_ sample_app

#作成したアプリのディレクトリに移動
$ cd sample_app

#サーバーを起動
$ rails s

ブラウザでlocalhost:3000を開き、以下の画面が表示されたら成功。
スクリーンショット 2023-03-09 13.14.56.png

参考サイト

【Rails】 Ruby on Railsの環境構築の全手順と概念をわかりやすく解説
「PATH を通す」の意味をできるだけわかりやすく説明する試み
Shimの意味
rbenv rehashをちゃんと理解する
webpackとは?
Node.jsとはなにか?なぜみんな使っているのか?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?