macOS Ventura上にrbenvで Ruby on Rails開発環境を構築する
はじめに_
ここではUnix/Linuxコマンドを利用する。ターミナル上でUni/Linuxコマンドを入力することを以下のように表記している。冒頭の「%」はコマンド入力を表す。
% Unix/Linuxコマンド
たとえば、以下の表記はターミナル上で小文字のlsを打ち込み、Enterキーを押すことを表している。
% ls
以下の例はターミナル上で小文字のcalを入力し、スペースキーを入力後、半角英数字の2022を押して、Enterキーを押すことを表している。
% cal 2023
検証環境_
- macOS 13.4.1 Ventura (2023/7/2現在)
- 参考:Appleサポート:Mac に搭載されている macOS を調べる
注意:CLangのバージョンについて_
macOS付属のC言語/C++のコンパイラCLangのバージョンによっては、Rubyのインストールに失敗する場合があります。 バージョン11の場合は失敗するようです。
CLangのバージョン確認はターミナルで以下のコマンドにより確認できます。私の環境ではバージョン13です。
% clang -v Apple clang version 14.0.3 (clang-1403.0.22.14.1) Target: arm64-apple-darwin22.5.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin
CLangのバージョンは、コマンドラインツールをインストールすることでアップグレードできます。まずは以下のページを読んでコマンドラインツールのインストール方法を確認してください。
次にターミナルで以下のコマンドを実行し、コマンドラインツールをインストールしてください。
% xcode-select --install
Ruby_
Gitのインストール_
Rubyをrbenvを用いてインストールするためにバージョン管理システムGitを使用する。
% git --version git version 2.39.2 (Apple Git-143)
rbenvのインストール_
GitHub: rbenv/rbenvを参考に設定する。
% brew update % brew install ruby-build % brew install rbenv % which rbenv /opt/homebrew/bin/rbenv
rbenvの設定。シェル(ユーザからのコマンド入力を支援するソフトウェア)の設定ファイルに設定を記載する。
MacOSのバージョンによってシェルが異なり、シェルの設定ファイルも異なるので、適宜読み替えること。
- Mac OS 13.00 Ventura: シェル zsh。設定ファイル.zshrc
- Mac OS 12.00 Monterey: シェル zsh。設定ファイル.zshrc
- Mac OS 11.00 Big Sur: シェル zsh。設定ファイル.zshrc
- Mac OS 10.15 Catalina: シェル zsh。設定ファイル.zshrc
- Mac OS 10.14 Mojave: シェル bash。設定ファイル.bash_profile
- Mac OS 10.13 High Sierra: シェル bash。設定ファイル.bash_profile
以下の例はmacOS Venturaの例となる。まず、以下のコマンドでどのファイルに設定を書き込むのか確認する。
% rbenv init # Load rbenv automatically by appending # the following to ~/.zshrc: eval "$(rbenv init - zsh)"
ホームディレクトリにある.zshrcというファイルに「eval "$(rbenv init -)"」を書き込めと指示されているため、以下のコマンドにより書き込む。以下のコマンドにより、.zshrcの末尾に「eval "$(rbenv init -)"」を追記できる。
% echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
書き込まれているか確認する。以下のように最後に「eval "$(rbenv init -)"」が表示されていれば、書き込み成功である。
% tail ~/.zshrc 〜途中省略〜 eval "$(rbenv init - zsh)"
設定を反映させる。
% source ~/.zshrc
rbenvの動きを確認する。
% which rbenv rbenv () { local command command="${1:-}" if [ "$#" -gt 0 ] then shift fi case "$command" in (rehash | shell) eval "$(rbenv "sh-$command" "$@")" ;; (*) command rbenv "$command" "$@" ;; esac } % rbenv -v rbenv 1.2.0 % rbenv version 3.1.2 (set by /Users/gotoh/.rbenv/version)
rubyのインストール_
インストール時に必要となるその他のソフトウェアをインストールする。
% brew install libxml2 openssl readline
% rbenv install --list 3.0.6 3.1.4 3.2.2 jruby-9.4.3.0 mruby-3.2.0 picoruby-3.0.0 truffleruby-23.0.0 truffleruby+graalvm-23.0.0 (2023年7月2日現在、最新版は3.2.2) % rbenv install 3.2.2 % rbenv global 3.2.2 % rbenv rehash % ruby -v ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22] % which ruby /Users/gotoh/.rbenv/shims/ruby (注:私の環境の場合は私のホームディレクトリ /Users/gotohの下にインストールされている。これはユーザ名ごとに異なる)
gemのバージョンを最新にする。
% gem update --system % gem --version 3.4.15
Ruby on Rails_
Ruby on Railsのインストール_
gemでライブラリーをインストールした際にドキュメントを生成すると時間がかかる。そこで、ドキュメントを生成しない設定にする。
% cd % touch .gemrc % echo "install: --no-document" >> .gemrc % echo "update: --no-document" >> .gemrc % more .gemrc install: --no-document update: --no-document
Ruby on Railsをインストールする。2023年7月2日現在、Rails 7.0.6がリリースされている。
% gem install rails % source ~/.zshrc % % rails -v Rails 7.0.6
動作確認をする。
% mkdir -p ~/Sandbox/RailsTest % cd ~/Sandbox/RailsTest % rails new demo --skip-bundle % cd demo % bundle install
Ruby on Railsの動作確認を行う。以下のコマンドで開発用Webサーバを起動する。
% rails server => Booting Puma => Rails 7.0.6 application starting in development => Run `bin/rails server --help` for more startup options Puma starting in single mode... * Puma version: 5.6.6 (ruby 3.2.2-p53) ("Birdie's Version") * Min threads: 5 * Max threads: 5 * Environment: development * PID: 70643 * Listening on http://127.0.0.1:3000 * Listening on http://[::1]:3000 Use Ctrl-C to stop
Safariを起動し、http://127.0.0.1:3000/ にアクセスし、Ruby on Railsのメッセージが出ていたらインストール&設定成功している。なお、以下の画像のRubyおよびRailsのバージョンはこの例よりも古いバージョンである。

開発用Webサーバを停止させる。Ctrlキーを押しながら「C」のキーを押す(以下、この操作をCtrl-cと表記する)。
Ruby on Railsの開発環境には http://127.0.0.1:3000/ で経由でアクセスできる。
Scaffoldを使ってみる_
関係データベース(SQLite3)との接続を確認するためにRuby on RailsのScaffold(足場)という機能を使って、簡単な入出力アプリを作ってみる。
% rails generate scaffold person name:string age:integer % rails db:migrate % rails server
Webブラウザで http://127.0.0.1:3000/people にアクセスし、personの入力、閲覧、変更、削除ができるならば関係データベースとの接続は成功している。




このアプリケーションのデータベースはSQLite3を使っており、データベースファイルはdemo/db/development.sqlite3 にある。
エディタviの練習(もし、興味があれば)_
macOSの端末上における標準エディタはviである。ほとんどのUnix系システムでデフォルトで用意されているエディタであるviの基本的な使いかたを紹介する。なお、日本語入力の方法については今回は割愛する。
まずは、viが存在するかをチェックする。
% which vi
viを起動する。
% vi
viは編集モードと入力モードの2つのモードがある。Escキーを押すと編集モードになり、編集モードで「i」や「a」を押すと入力モードに入る。 とりあえず、文章を書いてみる。「i」を押して以下のように文章を打つ。
Hello World!
文章を打ち終ったらEscキーを押して、編集モードにする。ファイルに名前をつけて保存する。編集モードで「:w ファイル名」と入力する。
:w hello.txt
保存せず、終了する。
:q!
viでファイルを開く。
% vi hello.txt
入力モードから編集モードへの切り替え
- ESCキー
編集モードにおける主なコマンド
- i: 挿入。カーソル位置から入力する
- a: 追加。カーソル位置の一文字次から入力する
- o(スモールオー): 次の行から入力を始める
- O(ラージオー):ひとつ前の行から入力を始める(行を新規に挿入する)
- x: カーソルがある文字を削除。emacsで言うC-dと同じ働き。
- dd: 一行削除(バッファ上には保存)。emacsで言うC-kと同じ働き。
- h, j, k, l:それぞれ、左、下、上、右へ移動
- 0(ゼロ):行の先頭へ移動
- $:行の末尾へ移動
- H:ターミナルに表示されている一番最初の行へ移動
- L:ターミナルに表示されている最終行へ移動
- y: カーソルのある行をコピー(バッファ上へ保存)
- p: バッファ上の行を挿入
- J:カーソルがある行と次の行を連結
- u:アンドゥ(操作の取消し)
- .(ピリオド):ひとつ前の操作を繰り返し実行
- :wq:上書きして終了
- :q!:保存せず終了
- 参考: