参考記事
- Ruby初学者のRuby On Rails 環境構築【Mac】 - Qiita
- MacにPostgreSQL9.6.3をインストールしてみた - Qiita
- PostgreSQLの環境をmacのローカルに作成&SQL操作(&ついでにDataGripへの接続) - Qiita
- Ruby on Railsの開発環境でPostgreSQLを利用する - Qiita
環境
MacOS Mojave 10.14.3
Homebrew 2.1.1
Fish Shell 3.0.2(使っていなくても問題ありません)
大事なこと
- この分野は急成長中であり常に変わっていきます。環境構築の際は記事の日付がなるべく新しいものを参考にしてください。
- 出来る限り環境を合わせると良いでしょう。特にインストールするバージョンは記事と同じにすると上手くいくことが多いです。
手順
- Command Line Toolsをインストール
- Homebrewをインストール
- rbenvをインストール
- Rubyをインストール
- Bundlerをインストール
- Ruby on Railsをインストール
- PostgreSQLをインストール&設定
- Railsアプリの作成&設定
1~6まで
Ruby初学者のRuby On Rails 環境構築【Mac】 - Qiitaにて綺麗にまとめられているので引用させて頂きます。
Command Line Toolsのインストール
- Appleのdeveloperアカウントページにログイン
- メニューからDownloadsやDownload Toolsを探してダウンロードページへ
- See more downloadsからダウンロードリストページへ
- OSに対応したCommand Line Toolsを探してダウンロード
- ダウンロードされた.dmgファイルをインストール
Homebrewのインストール
Homebrewがインストールされているか確認
$ brew -v
Homebrew 1.4.2
Homebrew/homebrew-core (git revision a678; last commit 2018-01-02)
インストールされていたら、、、アップデートする
> ```
$ brew update
インストールされていなければ、、、Homebrew macOS 用パッケージマネージャーのサイトでの手順に従ってコマンドをターミナルにコピペしてインストール
rbenvのインストール
rubyのバージョン管理ができるようにrbenvをHomebrewでインストール
rbenvがインストールされているか確認
$ rbenv -v
rbenv 1.1.1
インストールされていたら、、、アップデートする
> ```
$ brew upgrade rbenv
インストールされていなければ、、、下記コマンドでインストール
rbenvのインストール
$ brew install rbenv ruby-build
> ```:.bash_profileの設定
$ echo 'export PATH="~/.rbenv/shims:/usr/local/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
Fish Shellを使っている場合
上記の「.bash_profileの設定」の手順が変わります。
-
~/.config/fish/config.fish
を開く(無い場合は新規作成する) -
status --is-interactive; and source (rbenv init -|psub)
を追記する
ターミナルとしてFish Shellを使う際のPATH設定 - Qiitaを参考にして貰えると分かりやすいです。
Ruby2.5.0のインストール
インストール可能なRubyのバージョンを下記コマンドで確認
$ rbenv install --list
> 今回は2017年12月にリリースされた2.5.0をインストールする
> ```:Ruby2.5.0のインストール
$ rbenv install 2.5.0
$ rbenv global 2.5.0
$ rbenv rehash
$ ruby -v
インストール後に環境全体に有効なバージョンに2.5.0を指定しておき、バージョンが反映されているか確認する
Bundlerのインストール
Bundlerがインストールされているか確認
$ bundle -v
Bundler version 1.16.1
インストールされていたら、、、アップデートする
> ```
$ gem update bundler
インストールされていなければ、、、下記コマンドでインストールしてバージョンの確認
Bundlerのインストール
$ gem install bundler
$ bundle -v
> ## Railsのインストール
Railsをインストールし作業するディレクトリを作成する
> ```:作業ディレクトリの作成
$ mkdir ~/workspace
$ cd ~/workspace
Rubyのバージョンを指定する(今後のバージョン切り替えを考慮して念のため)
Rubyのバージョン指定
$ rbenv local 2.5.0
作業ディレクトリに.ruby-versionファイルが作成される
> bundle initでGemfileを作成する
```$ bundle init
Gemfileを編集し
# gem "rails"
をコメント解除する
Gemfile
frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "rails"
Railsをインストールしてバージョン確認
> ```:Railsインストール
$ bundle install --path=vendor/bundle
$ bundle exec rails -v
Rails 5.1.4
最後は$ bundle install --path vendor/bundle
の方が良さそうです。
以上でRailsを使う為の初期設定は終わりです。
改めて、引用させて頂いた@TAByasu様にお礼申し上げます。
7. PostgreSQLのインストール&設定
$ brew install postgresql
$ psql --version
psql (PostgreSQL) 11.2
$ initdb /usr/local/var/postgres/ -E utf8
The files belonging to this database system will be owned by user "ユーザー名".
This user must also own the server process.
The database cluster will be initialized with locale "ja_JP.UTF-8".
initdb: could not find suitable text search configuration for locale "ja_JP.UTF-8"
The default text search configuration will be set to "simple".
Data page checksums are disabled.
initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
$ brew services start postgresql
==> Tapping homebrew/services
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
remote: Enumerating objects: 17, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 17 (delta 0), reused 12 (delta 0), pack-reused 0
Unpacking objects: 100% (17/17), done.
Tapped 1 command (50 files, 62.5KB).
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)
こうなればOKです。
export PGDATA=/usr/local/var/postgres
set -x PGDATA /usr/local/var/postgres
上記を~/.bash_profile
または~/.config/fish/config.fish
に追記してください。
その後、ターミナルの再起動を忘れずに。
$ postgres -D /usr/local/var/postgres
サーバーが起動するので、そのウィンドウとは別のウィンドウを開いてください。
$ createuser -P 好きなユーザー名
Enter password for new role: 好きなパスワード
Enter it again: 好きなパスワード(同上)
8. Railsアプリの作成&設定
$ bundle exec rails new 好きなアプリ名 -d postgresql
こうする事でPostgreSQLをRailsのDBに設定できます。
(前略)
default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see Rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: 設定したアプリ名_development
(中略)
test:
<<: *default
database: 設定したアプリ名_test
(中略)
production:
<<: *default
database: 設定したアプリ名_production
username: 設定したアプリ名
password: <%= ENV['設定したアプリ名_DATABASE_PASSWORD'] %>
このようにアプリ内にデータベースの初期設定が行われます。
$ cd 設定したアプリ名
$ rails db:create
これで環境構築完了です!