※2021-01-04: 2020-04-29の記事を書き直しました。
環境: macOS Catalina, Ruby 2.6.6/2.7.2/3.0.0, Rails 6.1.0
コマンドライン・デベロッパツールのインストール
次のコマンドを実行します。「"clang"コマンドを実行するには、コマンドライン・デベロッパツールが必要です。ツールを今すぐインストールしますか?」というダイアログが出るので「インストール」を押します。
% clang
次のコマンドを実行しても同じです。なお、Xcodeのインストールは必要ありません。
% xcode-select --install
関連記事: コマンドライン・デベロッパツールについてメモ
Homebrew、rbenvのインストール
Homebrewのサイト からコマンドをコピペしてHomebrewをインストールします。
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ruby-buildとrbenvをインストールします。
% brew install ruby-build rbenv
OpenSSL 1.1 をインストールします。
% brew install openssl
.zshrcにOpenSSLとrbenvの設定を書きます。これ以外の環境変数は、記述しなくても必要なものはインストールできます。ターミナルを開き直します。
export PATH="$(brew --prefix openssl@1.1)/bin:$PATH"
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)"
eval "$(rbenv init -)"
rbenvでRubyをインストールします。
% rbenv install 2.7.2
Rubyのバージョンを確認します。システムのrubyコマンド(/usr/bin/ruby)のままになっているときは、ターミナルを開き直してください。
% ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
必要であれば、Rubyのその他のバージョンも入れておきます。
% rbenv install 3.0.0
Railsのインストール
Bundlerのバージョンを上げておきます。
% gem install bundler -N
Railsの最新版をインストールします。-N オプションはriドキュメントを省いてインストールを速くするものです。
% gem install rails -N
バージョンを確認します。システムのrailsコマンド(/usr/bin/rails)のままになっているときは、ターミナルを開き直します。
% rails --version
Rails 6.1.0
yarn をインストールします。
% brew install node yarn
新しいアプリケーションを作ってみて成功すればOK。
% rails new generic
おまけ: PostgreSQL/MySQLインストール
PostgreSQLのバージョン11をインストールします。
% brew install postgresql@11
.zshrcでバージョン11のパスを追加します。これだけで、gemのpgはコンパイルできます。
export PATH="$(brew --prefix openssl@1.1)/bin:$PATH"
export PATH="$(brew --prefix postgresql@11)/bin:$PATH"
# 以下略
PostgreSQLを起動します。
% brew services start postgresql@11
MySQL 5.7をインストールします。
% brew install mysql@5.7
.zshrcでパスを追加します。
export PATH="/opt/homebrew/bin:$PATH"
export PATH="$(brew --prefix openssl@1.1)/bin:$PATH"
export PATH="$(brew --prefix postgresql@11)/bin:$PATH"
export PATH="$(brew --prefix mysql@5.7)/bin:$PATH"
# 以下略
MySQLを起動します。
% brew services start mysql@5.7
bundlerでgemのmysql2をインストールすると、ld: library not found for -lssl
というエラーが出ます(2021-01-04現在)。先にオプション付きでmysql2をインストールしておきます。
% gem install mysql2 -- --with-opt-dir="$(brew --prefix openssl@1.1)"
MySQL 5.7はパスワード必須のはずですが、Homebrewでインストールすると、rootのパスワードなしで使えます。パスワード必須にするには、次のコマンドで設定します。
% mysql_secure_installation