Open1

Ruby環境構築(M1 Mac fish)

ゆずのすけゆずのすけ

Macでの環境構築

Rubyの基本文法をある程度勉強したので、Railsチュートリアルをやってみることにした。
https://railstutorial.jp/chapters/beginning?version=7.0#sec-development_environment

まずは環境構築方法から

1. バージョン管理ツール( rbenv )のインストール

Macは標準でRubyがインストールされているが、バージョンを揃えないとチュートリアルがやりにくそうなので、バージョン管理ツールをインストール

rbenv -v # インストールされてなければ、下記コマンドでインストール
brew install rbenv ruby-build # homebrew を使う

2. rbenvの初期環境設定

自分はshellは、fishを使っているのでzshやbashとは記述方法が少し異なります。

RBENV_ROOTの設定

環境変数 RBENV_ROOTにユーザーのホームディレクトリにある.rbenvディレクトリパスを設定する
以下のコマンドを実行する

set -Ux RBENV_ROOT $HOME/.rbenv

環境変数に登録するにはsetを使うっぽい
-Uxフラグは環境変数をユニバーサル(すべてのセッションで共有)かつエクスポート(他のプログラムに見えるように)するためのオプション

PATHへの追加

rbenvの実行可能ファイルのディレクトリをPATHに追加する

set -U fish_user_paths $RBENV_ROOT/bin $fish_user_paths

これでrbenvのバイナリがシステムのパスに追加される

初期化スクリプトの実行

rbenv initをfishシェル用に適応させるためには、以下のコマンドを実行する。

status is-interactive; and source (rbenv init - | psub)

このコマンドは対話型セッションの場合にのみrbenv initを実行し、出力を現在のシェルセッションに読み込みます。

変更を有効にするには、Fishシェルを再起動
またはsourceコマンドを使用して設定ファイルを手動で読み込む必要があります。

rbenvの自動初期化設定をconfig.fishに追記する

メリット

自動初期化:
config.fishに設定を追加すると、新しいシェルセッションが開始されるたびにrbenvが自動的に初期化される。
これにより、毎回手動で初期化する手間が省ける。

一貫性のある環境: 全てのシェルセッションで同じ環境設定が保証されるため、環境に依存したエラーを減らすことができます。

設定の集中管理:
設定が一箇所にまとまるため、管理が容易になります。後で設定を変更する際も、一箇所のみを編集すれば良いので便利です。

デメリット

起動時間の増加:
シェルセッションの起動時に追加のスクリプトを読み込む必要があるため、わずかですが起動時間が長くなる可能性があります。

設定の複雑性:
初心者にとっては、設定ファイルを編集することが少し難しく感じられるかもしれません。また、設定を誤って編集するとシェルの動作に影響が出る可能性があります。

ポータビリティの問題:
複数のシステムを使用している場合、それぞれのシステムに同じ設定を適用する必要があります。これは設定の同期を必要とする場合があります。

総合的な考慮

一般的には、rbenvを頻繁に使用する場合、設定をconfig.fishに追加することは大きなメリットがあります。特に、開発環境でRubyを頻繁に使用し、複数のプロジェクト間で異なるRubyバージョンを切り替える必要がある場合、自動初期化は大きな利便性をもたらします。しかし、シェルの起動時間や設定の複雑性が気になる場合は、この方法を採用しないことを選ぶかもしれません。

最終的には、個人の使用習慣や環境に応じて、この設定を追加するかどうかを決定するのが最善です。


config.fishへの記述

#if status is-interactives

# rbenv設定
set -Ux RBENV_ROOT $HOME/.rbenv
set -U fish_user_paths $RBENV_ROOT/bin $fish_user_paths

# rbenv init
status is-interactive; and source (rbenv init -|psub)

3. Rubyのインストール

rbenvでインストールできるバージョンのチェック

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.1.0
truffleruby+graalvm-23.1.0

今回はRailsチュートリアルで使う3.2.2を使う

rbenv install 3.2.2

インストールしたバージョンでRubyを使用するように設定を変更
(バージョンが変わらない場合、シェルセッションを切り替えるといい。新規タブで開く)

rbenv global 3.2.2

現在のバージョンを確認

ruby -v

4. Railsのインストール

-vというオプションを使うことで、インストールされるRailsのバージョンを正確に指定できる

gem install rails -v 7.0.4.3

バージョン確認

rails -v
Rails 7.0.4.3

bundlerのバージョンを指定してインストールする

gem install bundler -v 2.4.12

rails newコマンドで新規アプリの雛形を作成
rails{バージョン} と書くことで、バージョンを指定することも出来ます。

rails _7.0.4.3_ new new_rails 

サーバー起動
Railsは以下のコマンドでサーバーが立てられるようだ

rails s

以上で、Ruby と Ruby on Railsをfishで環境構築する方法終わり