【初学者向け】MacでRuby on Railsの環境構築(http://localhost:3000/を立ち上げるまで)


MacでRuby on Railsの環境構築するときの簡単な手順です!とりあえず、何もないところからrails sでサーバーを立ち上げるまでです!

homebrewをインストール

コマンドは上記のHomebrewのサイトからコピー可能
途中でEnterの入力/インストールユーザのOSパスワードの入力を求められる

ターミナルにコードをコピペ

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Xcode Command Line Toolsのインストール

ログ中に英語で、
「Xcode Command Line Toolsをインストールされます。続ける場合はRETUENを押してください」
ということが書いてあります。

指示通り「RETURN」キーを押すと、
その直後にパスワードを入力するように求められますが、Macの画面のロックを解除するパスワードを入力し、Xcode Command Line Toolsが自動で、インストールされます。

ここまででが一連のインストールの手順です。

Homebrewインストール完了確認

$ brew doctor
Your system is ready to brew.

homebrewでMySQLをインストール

$ brew update
$ brew install [email protected] 

バージョンを指定してインストールしていますが、バージョンを指定しなければ現在は、MySQL8がインストールされます。現状はまだ、@5.7で走っているプロジェクトが多そうなので、いったん、@5.7でインストールします!
インストールが終わったら、内容を見てみます。

$ brew info mysql

MySQL の起動

$ mysql.server start 
Starting MySQL
SUCCESS! 

接続

$ mysql -u root

-bash: mysql: command not foundとか、-zsh: mysql: command not foundとかが出て、コマンドが打てないことがたまにある。

この場合、コマンドのpathが通っていないことが多い。
.zshrcファイルにpathを記載してコマンドが打てるようにする必要がある。(ログインシェルに何を使っているかで、設定ファイルの名前は変わる。今回はzshを想定している。)

以下のコマンドで隠しファイルを開く。

$ open ~/.zshrc

export PATH=/usr/local/opt/[email protected]/bin:$PATH

[email protected]のところはそれぞれ使っているmysqlによって変える。

以下のコマンドで環境変数の設定を反映させる。(これを打たないとターミナルを再起動しないと反映されない。)


$ source ~/.bash_profile

※ちなみに、mysqlのログイン時のパスワードを変更する場合は、
コマンドラインから

$ mysqladmin password 新しいパスワード -u ユーザー名 -p

から可能です!(デフォルトではrootユーザーのパスワードは設定されません。)

homebrewを使用して、rbenvおよびruby-buildをインストール(インストール済みの場合は不要)

rbenvインストール

$ brew install rbenv
$ brew install ruby-build

・ruby-buildは、rbenvのプラグイン。($rbenv installコマンドを使うためのプラグイン)
・この後、$ rbenv installコマンドで、rubyをインストール

rbenvでrubyを見るための設定をする

mac osのバージョンによって対応が異なる。

macOS High Sierra (ハイ シエラ)など、macOS Catalina (カタリナ)より前のバージョン

.bash_profileに必要な設定を記載する。以下のコマンドで記載させる。

.bash_profileがない場合は、自分で作る。
方法は、$ vim ~/.bash_profileなどで作成。
以下のコマンドを打って、ファイルに書き込むか、直接テキストエディターから編集する。

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile

以下のコマンドで環境変数の設定を反映させる。(これを打たないとパソコンを再起動させて再度ログインしないと設定変更が反映されない)

$ source ~/.bash_profile

or

$ source ~/.zshrc

macOS Catalina (カタリナ)

macOS Catalina から、デフォルトシェルが bash から zsh に変更されている。
なので、.zshrcを作ってそこに設定を書きます。(こちらは直接テキストエディターを編集する方法を紹介しています。)

$ vim ~/.zshrc

以下の記載をする

export PATH="$HOME/.rbenv/bin:$PATH" 
eval "$(rbenv init - zsh)"

こちらのコマンドで環境変数の設定を反映。

$ source ~/.zshrc

これら設定を行うことで、rbenvを使ってrubyのバージョンを反映することが出来ます!

メンタをやっていて、これらの設定を行わないと、ruby -vでバージョンが変わらないケースがあったので要注意

Rubyをインストール

rbenvでrubyをインストール

$ rbenv version
を実行し、rbenvで管理されているrubyのバージョンを確認

→開発で使用したい該当のバージョンがなければインストールする必要あり。
$ rbenv install 2.6.5(バージョンは一例)

$ rbenv global 2.6.1
→rbenvのバージョンを切り替える

$ rbenv rehash
→反映

$ ruby -v
→rubyバージョンを確認

  • Rubyコマンドの参照先をチェック

rbenvの参照先を確認

$ which ruby
/.rbenv/shims/ruby

rbenvでRubyをインストールすると/.rbenv/shims/rubyが正しい参照場所なので、このように出ていれば正解です!

rubyのインストール時にエラーが出た場合

If you don't have the version you need, try upgrading ruby-build: brew update && brew upgrade ruby-build

このエラーが出れば、指摘通り以下のコマンド実行

$brew update

$brew upgrade ruby-build

その後、もう一度トライすると上手くいく

$rbenv install 2.6.5
$ rbenv install 2.6.1
→rbenvでrubyをインストールする

Railsを設定

  • 新アプリ名のディレクトリを作成
  • $ cd ~/<ディレクトリ名>コマンドで、アプリディレクトリに移動 $ bundle init →Gemfileを作成

できあがったGemfileのRailsのコメントアウトを外す
gem "rails"
→Gemfileでrailsのバージョンを確認

bundlerのインストール

$ gem install bundler

$ bundle -v
→bundlerのバージョンを確認

補足
・gemを管理するシステムがRubyGems
・RubyGemsはRubyに標準添付されているシステムなのでRubyが使える状態ならすぐに使うことができる。→rubyに同梱(セット)
→同梱のバージョン確認には
$ gem update --system
・bundlerはgemの一種で、gemをデフォルトのRubyGemsより効率よく管理できるツール。まず最初に、RubyGemsを使ってbundlerをインストール
・bundlerを使ってgemをインストール
・BundlerはGemfileをもとにgemをインストールする。
・gemをシステムにインストールするのではなく、ディレクトリ内で管理する。
・そのためにpathオプションをつける。
$ bundle install --path vendor/bundleでpathオプションをつける。このことにより、コマンドの頭にbundle execコマンドをつけて、実行する。
・railsもgemの一種

Rails(gem)のインストール

$ bundle install --path vendor/bundle

※もし以下のようなbundlerのバージョンエラーが出たら

To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:2.0.2

$ gem install bundlerで最新のbundlerをインストール
$ rbenv rehash
$ bundle -vでbundlerのバージョン確認
→その後もう一度
$ bundle install --path vendor/bundle

rails new

$ cd ~/<ディレクトリ名> で、アプリのディレクトリに移動

$ bundle exec rails new . -d mysql --skip-turbolinks --skip-test --skip-coffee
→.はカレントディレクトリを意味する
→gemfileの上書きを聞かれた場合は、yes入力でgemfileを上書き
→bundle installも自動でやってくれる
→うまく行かなければ
$ bundle update

mysqlエラー出た場合
以下をやってみる
$ bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib"
$ bundle install

nodeを使う場合(nodeを使わないのであれば飛ばしてください)

nodeのバージョンなどをいじる場合は以下の記事を参照
https://qiita.com/kenkentarou/items/f27bd4e49af6fe429429

nodeとは
関係性
ruby <-> node
rbenv <-> nodebrewやnvm

nodeは一つの言語(node.jsと同義)で、nodeは、言語としても扱うし、サーバーサイドで動くためにコンパイルするシステムとしても使われる

データベースの設定

データベースの設定ファイルを作成

通常の現場では、datebase.yml.defaultというファイルを作成して、設定情報はrootなどセキュリティー上影響ない初期値を入れておき、こちらをgit管理します。

ローカルで作業する際には、datebase.yml.defaultをコピーして、database.ymlというファイルを作成し、自身のPC上の設定に合わせ修正したものを使います。自身の設定に合わせたdatabase.ymlを作成しないと、ローカルでデータベースを走らせることができません。

以下のコマンドを実行し、database.yml.defaultをコピーして、自身の環境に合わせたdatabase.ymlを作成しましょう。

$ cp config/database.yml.default config/database.yml
  • database.ymlの設定を自身の環境に合わせて修正 ユーザー名やパスワードの設定

ローカル上にデータベーステーブル作成

  • $ bundle exec rails db:create →データベーステーブル作成

$bundle exec rails db:migrate
→migrationが必要なファイルがあれば実行

サーバー立ち上げ

  • bundle exec rails sコマンドを実行し、railsサーバーの立ち上げ。

  • localhost:3000にアクセスし、完成形画面が表示されることを確認

git hubの初期設定

git hubの登録

git hubのサイトで、普通にユーザー登録をする。

gitの初期設定

$ git config --global user.name "git hub git hubに登録したユーザー名"

$ git config --global user.email git hubに登録したemailアドレス

$ git config --global core.editor "rubymine --wait"

$ git config user.name # 設定したユーザー名を確認できる

$ git config user.email # 設定したメールアドレスを確認できる

$ git config core.editor # 設定したエディターを確認できる

$ git config --list # gitの登録情報全てを表示する

$ cat ~/.gitconfig # .gitconfigという設定ファイルの中身をみる

.gitignore_globalの設定

作業中のすべてのリポジトリで、ある特定のファイルを無視したい場合があったりします。 Mac OS X を使っているのなら、 .DS_Store というファイルとか、エディターにrubymineを使っている場合などは、.ideaファイルなどがそれに当たります。
その場合、.gitignore_globalに記載しておけば、どのプロジェクトでもそのファイルは無視してくれます。
vimのコマンドでファイルを新しく作ります。

$ vim ~/.gitignore_global

ファイル内に何を記載するかはその人によりますが、私の設定は以下のようにしています。

*~
.DS_Store
.idea/
.generators
*.rdb
.rakeTasks

この後、以下のコマンドを打てば反映されます。

$ git config --global core.excludesfile ~/.gitignore_global

ターミナルにブランチ名を表示する設定

今いるブランチがどこかを調べるために、いちいち、$ git branchとかで確認していると面倒臭いので、常に、今いるブランチ名をターミナルに表示する設定をしておきます。

こちらの記事が参考になったので、こちら記事の通り設定してみてください。

Googleクロムの拡張機能 octotree導入

こういう拡張子があります。かなり作業効率が上がるので、入れておいた方が良いです!

アクセストークンなどの設定が必要になりますが、簡単なので、ググってやってみましょう。

git flowでの管理の場合

git flowがPCに入っている前提で、
(PCにgit flow入れてなければ$ brew install git-flowでインストール)

$git flow init
→アプリのディレクトリ全体がgit管理対象になる設定は、 git init と言うコマンドだが、Railsの場合は rails newしたタイミングで良しなにgit initまでやってくれている。git flow initはgit flowでスムーズに開発するするための初期設定をやってくれるコマンド。
git flow initを打つと、ローカルにmasterとdevelopのbranchが出来る

プッシュする前に確認すること

.gitignoreに入れておかなければいけないファイル、ディレクトリが無いかどうか

ex) /vender等

リモートリポジトリにプッシュする

$ git add .
$ git commit -m "inital commit"

$ git remote add origin https://github.com/hoge/hoge.git

$git push --all
→ローカルにあるdevelopとmasterの両方をリモートにあげる

レビューをしやすくするためにrails newの段階でgit flow initをしてmasterとdevelopブランチを自身のパブリックリポジトリに対してプッシュしています!

gitのエイリアスの設定

gitのエイリアスを設定する方法は2つあります。

  • .gitconfigファイルを直接編集する
  • コマンド打って.gitconfigファイルを修正する

結果、やってることは同じなのですが、両方の方法を紹介します。

.gitconfigファイルを直接編集する

このコマンドで、設定ファイルを開きます。

$ open ~/.gitconfig

このコマンドで、ルートディレクトリにある隠しファイル.gitconfigを開いています。
GUIで操作するなら、直接finderからルートディレクトリに行き、⌘+shift+.で隠しファイルを表示出来ますので、そこから直接クリックして開いても大丈夫です。

開けたら、こんな感じで記述して行きます。以下は私の基本設定です。

[alias]
    co = commit
    br = branch
    ch = checkout
    st = status

こうすると、例えば、g$ it commitは、$ git co`と打つだけで済みます!

コマンドで打って設定する方法

以下のコマンド打てば、.giconfigファイルに設定が反映されます。

$ git config --global alias.ci commit

こんな感じで打つと、設定できます。

コマンドのエイリアス設定

エイリアス設定をするためには、.bashrcにエイリアスを記述必要があります。
エイリアスは.bashrcというファイルに記述します。

まず、ファイルを開きます。gitのエイリアスの時と同じ要領です。

$ open ~/.bashrc

開いたファイルに以下を記載します。私が書いている設定です。

alias be='bundle exec'
alias bi='bundle install'

次に、bash_profileで.bashrcを読み込む設定をする必要があります。

エイリアスは.bashrcに書いただけでは設定が反映されません。

なので設定を反映させるために、.bash_profileに.bashrcを読んでもらう必要があります。

.bash_profileは パソコンが起動されると読み込まれるものなので、そのタイミングで.bashrcも読んでもらいます。(基本.bashrcはシェルにログインしたタイミングで読み込まれるファイル)

ターミナルから

$ open ~/.bash_profile

と打って、.bash_profileを開き、ファイルの一番下に以下のコマンドを記述しましょう。

$ source ~/.bashrc

そして、この変更自体も反映させなければいけないので、ターミナルから

$ source ~/.bash_profile

を打ちます。

ターミナルの再起動でも.bash_profileが読み直されるのでそれでもオッケーです。

これでエイリアスの設定は完了です。

これらが最初、PCを買った後に行う基本の初期設定です。