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.

Railsでポートフォリオ制作②【環境構築】

Posted at

Web系企業でのバックエンドエンジニアとしての就職を目指して、ポートフォリオを制作しています。
ポートフォリオ制作のすべての記録を残していきます。

この記事は

Rails環境構築でエラーに出合いまくり七転八倒した私が、どうにかrails newまでこぎつけた軌跡を記しています。
エラー解消のためにひとつひとつの操作・コマンドを理解しようと、それぞれ意味を調べて書いています。
Railsでこれから環境構築する方の参考になれば幸いです!

マシンスペック

  • macOS Monterey
  • MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
  • Intel Core i7
  • メモリ 32GB

Ruby, Railのバージョン

  • Ruby: 3.1.2
  • Rails: 7.0.4

どうやってRuby, Railsのバージョンを決める?

  • 基本最新のものを使うべき
    • 理由:古いものだと脆弱性があったりセキュリティ的に問題がある可能性があるから
  • メジャーバージョンが上がってすぐのタイミングなどでは安易に手は出さない方が良い
    • 理由①:バグが潜んでる可能性があるから
    • 理由②:周辺ライブラリ(gemなど)が対応していないことがあるから
    • 理由③:ドキュメントがネット上に少ないから

環境構築の手順

  1. Command Line Toolsのインストール
  2. Homebrewのインストール
  3. rbenvのインストール
  4. Rubyのインストール
  5. RubyGemsのアップデート
  6. Bundlerのインストール
  7. Railsのインストール
  8. Node.jsのインストール
  9. データベースの用意
  10. Railsアプリケーションの新規作成!

なぜ上記のような準備が必要? そもそも何者?

  • Command Line Tools: Macに標準搭載されていないコマンド(Homebrewのbrewコマンドなど)を使えるようになるツール。
  • Homebrew: Macに標準搭載されていないソフト(rbenvなど)をインストールできるパッケージマネージャ。
  • rbenv: Rubyのバージョン管理ツール。
  • RubyGems: Rubyのインストール時に同梱される、Rubyのライブラリ(=gem)の管理ツール。
  • Bundler: gemのバージョン管理ツール。
  • Node.js: Javascriptランタイム(=JSの実行に必要な全てが詰まっているもの)。フロントエンドでJSを用いる場合、RailsのアセットパイプラインでJSの圧縮を行うにはJSランタイムが必須。
  • データベース: Railsアプリケーションのデータの永続化のために必要。今回はMySQLを利用。

それでは、各ステップについて詳しく書いていきます!
余談の欄は、インストールがうまくいかなかったり途中でエラーが出た時などに見てください。

1. Command Line Toolsのインストール

$ xcode-select --install

上記のコードを実行するとポップアップが出てきます。
成功したら 2. Homebrewのインストール へ!

(余談: 私の場合)

私はもともとCommand Line Toolsが入っていたのですが、CLTを最新版にアップデートしようと思い以下のコード(現存のものを削除)を実行してから上記のコードでインストールを行いました。

$ sudo rm -rf /Library/Developer/CommandLineTools

2. Homebrewのインストール

Homebrewの公式サイトから、インストール用のコマンドをコピペして以下のように実行すればOK。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

以下のコマンドでインストールが無事にできているか確認。バージョンが表示されれば成功。 3. rbenvのインストール へ!

$ brew --version

(余談: 私の場合)

Homebrewのアップデート(brew update)がエラー吐きまくり状態に陥ったので、一旦アンインストールしてインストールし直しました。アンインストールコマンドは以下です。(install.sh->uninstall.shに書き換えたもの)
OSのバージョンによってコマンドが異なる&Homebrewでこれまでインストールしたパッケージも削除されるので注意。

$  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"

アンインストール後のインストール時のエラーは、こちらの方法(=中途半端に残ったファイルの削除)で解決しました。

3. rbenvのインストール

anyenvを使って、rbenvのインストールを行います。
anyenvの説明・インストール方法はこちらがとても分かりやすいです。
anyenvを使うことで、rbenv, nodenvでいちいちパスを通したり、initコマンドの実行を設定する手間が省けます🎉

1) ~ 3) の順に、コマンドを実行していきます。
rbenvのバージョンが表示されるのを確認できたら、4. Rubyのインストール へ!

# 1) rbenvのインストール
$ anyenv install rbenv

# 2) シェルを再起動
$ exec $SHELL -l

# 3) rbenvのインストール確認。rbenvのバージョンが表示されたらOK。
$ rbenv -v

4. Rubyのインストール

1) ~ 4) の順に、コマンドを実行していきます。
rubyのバージョンが表示されるのを確認できたら、5. RubyGemsのアップデート へ!

# 1) Rubyの最新バージョン確認
$ rbenv install -l

# 2) インストールしたいバージョンを指定してインストール
$ rbenv install <version>

# 3) 指定したバージョンをグローバルに適用
$ rbenv global <version>

# 4) シェルの再起動
$ exec $SHELL -l

# 5) 指定したバージョンが適用されているか確認
$ ruby -v

5. RubyGemsのアップデート

RubyGemsはRubyに同梱されますが、同梱バージョンよりも新しいバージョンが公開されていることも。確実に新しいバージョンが使えるようにアップデートしておきましょう。

$ gem update --system

6. Bundlerのインストール

gemのバージョン管理ツールのインストール。
※Bundlerのインストールの前に、今後のgemのインストール時間の短縮のために、ローカルでのドキュメント生成機能をoffにしておきます。

# .gemrcというgemのconfigファイルに、ドキュメント生成機能の停止を設定
$ echo "gem: --no-document" > ~/.gemrc

# Bundlerのインストール
$ gem install bundler

7. Railsのインストール

バージョンを指定して、Railsをインストールします。バージョンを指定しない場合、最新のバージョンがインストールされます。

$ gem install rails -v <version>

疑問点:
新たにRubyのバージョンやgemをインストールした時には、毎回rbenv rehashをした方がいスクリーンショット 2022-11-10 10.04.22.png
いらしい?(参照
→ rbenvのGitHubでは基本的に自動でrehash行われるからコマンド打つ必要ないとのこと。(参照)ruby, gemコマンドがうまく動かなかった時にrehashすればよさそう。
rbenv rehash: shimsディレクトリを作成。shims=入力されたrubyコマンドを、現在使用されているrubyバージョンのファイルにリダイレクトする役割。(詳細

8. Node.jsのインストール

anyenvを使って、nodenvというNode.jsのバージョン管理ツールのインストールから行います。
anyenvのインストール方法はこちら

# 1) nodenv(=Node.jsのバージョン管理ツール)のインストール。
$ anyenv install nodenv

# 2) シェルを再起動
$ exec $SHELL -l

# 3) nodenvのインストール確認。バージョンが表示されたらOK。
$ nodenv -v

# 4) Node.jsのインストール可能なバージョン一覧を表示
$ nodenv install -l

# 5) Node.jsのインストール
$ nodenv install <version>

# 6) Node.jsのインストール確認。バージョンが表示されたらOK。
$ nodenv versions

9. データベースの用意

MySQLのインストールを行います。
MySQLは起動したままで。Railsサーバの立ち上げ時にMySQLが動いている必要があるためです。
MySQLの停止はsudo mysql.server stopでOK。

$ brew install mysql

# インストールの完了を確認
$ mysql --version

# MySQLの起動
$ sudo mysql.server start

10. Railsアプリケーションの新規作成

# MySQLを使用したRailsアプリを新規作成
$ rails new <app_name> -d mysql

$ cd <app_name>

# データベース新規作成(MySQL起動した状態で)
$ bin/rails db:create

# Railsサーバの起動
$ bin/rails s

http://localhost:3000/ に接続して、このような画面が表示されたら成功!!
スクリーンショット 2022-11-10 10.04.56.png

bin/railsコマンドについて:
bundle exec railsとして実行した時と同様に、Gemfileどおいrのgemを利用できる環境上でrailsコマンドを実行できる。プラス、SpringというRailsの起動を効率的に行う機能も組み込まれる。このように、よく使うコマンドを包み込んで使いやすくするスクリプトを「binstub」と呼ぶ。

最後に、アプリで使うruby, Node.jsのバージョンを固定しておきましょう。
(今回は ruby: 3.1.2, Node.js: 19.0.1のバージョンに固定しています。)

$ rbenv local 3.1.2
# -> 「3.1.2」と書かれた.ruby-versionファイルが作成される

$ nodenv local 19.0.1
# -> 「19.0.1」と書かれた.node-versionファイルが作成される

# バージョンが固定されているか確認
$ ruby -v
$ node -v

以上です!
お疲れ様でした!

参考

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?