🦓

[環境構築]mac intelでrubyのインストールからrails newまで

2023/06/14に公開

はじめに

macを初期化しましたのでrubyとrailsを再インストールします。

ターミナルで今の状態を確認する

ct@ct ~ % which ruby
/usr/bin/ruby
ct@ct ~ % which gem
/usr/bin/gem
ct@ct ~ % which rails
/usr/bin/rails
ct@ct ~ % ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.x86_64-darwin22]
ct@ct ~ % rails -v
Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

You can then rerun your "rails" command.
ct@ct ~ % gem install htmlbeautifier

Fetching htmlbeautifier-1.4.2.gem
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
    
ct@ct ~ % rbenv versions
* system

# ローカルにインストールされている
ct@ct ~ % which node
/usr/local/bin/node
ct@ct ~ % which yarn
/usr/local/bin/yarn
ct@ct ~ % which brew
/usr/local/bin/brew

yarnnodeのパスの/usr/local/binは、一般的にシステムでローカルにインストールされた実行可能ファイルが配置されるディレクトリの一つです。
ruby関連のパスは/usr/binというシステムディレクトリのパスになっています。一般的には、このディレクトリにはシステム全体で使用される実行可能ファイル(コマンド)が格納されます。
システムのrubyを利用しているため、権限不足でgemのインストールができないとなっています。

rbenv versionsコマンドは、rbenvというRubyのバージョン管理ツールを使用して、システムにインストールされているRubyのバージョンを表示します。
上記の出力 system は、現在のシステムにおいてrbenvによるRubyのバージョン管理が行われていないことを示しています。"system"という表示は、システムにプリインストールされたRubyバージョン(またはデフォルトのRubyバージョン)を意味します。

rbenvでrubyのバージョンを管理する

rbenvをインストールされてない場合はインストールします。

brew install rbenv ruby-build

インストールできるrubyのバージョンは以下のコマンドで確認ができます。

ct@ct ~ % rbenv install -l
3.0.6
3.1.4
3.2.2
jruby-9.4.2.0
mruby-3.2.0
picoruby-3.0.0
truffleruby-22.3.1
truffleruby+graalvm-22.3.1

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.

3.1.4をインストールします。

ct@ct ~ % rbenv install 3.1.4
To follow progress, use 'tail -f /var/folders/3z/jj5lmscj30qb1nsd4lpfw2nc0000gn/T/ruby-build.20230614114803.45768.log' or pass --verbose
Downloading openssl-3.1.0.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/aaa925ad9828745c4cad9d9efeb273deca820f2cdcf2c3ac7d7c1212b7c497b4
Installing openssl-3.1.0...
Installed openssl-3.1.0 to /Users/***/.rbenv/versions/3.1.4

Downloading ruby-3.1.4.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.gz
Installing ruby-3.1.4...
ruby-build: using readline from homebrew
ruby-build: using libyaml from homebrew
Installed ruby-3.1.4 to /Users/***/.rbenv/versions/3.1.4


NOTE: to activate this Ruby version as the new default, run: rbenv global 3.1.4
ct@ct ~ % rbenv global 3.1.4

rbenvのパスを通す

現在のmacのシェルを確認します。

ct@ct ~ % echo $SHELL
/bin/zsh
ct@ct ~ % echo $0
-zsh
ct@ct ~ % echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
ct@ct ~ % echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
ct@ct ~ % rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:

eval "$(rbenv init - zsh)"

ct@ct ~ % cat ~/.zshrc
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init - zsh)"
ct@ct ~ % rbenv rehash
ct@ct ~ % rbenv versions
  system
* 3.1.4 (set by /Users/***/.ruby-version)
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrcは、~/.zshrcファイルに特定の行を追加するためのシェルコマンドです。

~/.zshrcは、Zshシェルの設定ファイルであり、Zshが起動する際に読み込まれるスクリプトです。このファイルに環境変数やエイリアス、関数などの設定を記述することができます。

上記のコマンドは、~/.zshrcファイルの末尾に、export PATH="$HOME/.rbenv/bin:$PATH"という行を追加します。これにより、Zshシェルが起動するときに$HOME/.rbenv/bin$PATHの先頭に追加し、rbenvコマンドを利用できるようにします。

具体的には、$HOME/.rbenv/binディレクトリにはrbenvの実行ファイルが存在し、それをパスに追加することでrbenvをシェルから直接実行できるようになります。

このコマンドを実行することで、次回以降、Zshシェルが起動する際にrbenvコマンドを使用できるようになります。ただし、変更を反映するためには、ターミナルを再起動するか、source ~/.zshrcコマンドを実行して変更を再読み込みする必要があります。

echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc

このコマンドは、Zshシェルの設定ファイルである~/.zshrcに、eval "$(rbenv init - zsh)"という行を追加します。

rbenv init - zshは、rbenvがZshシェルで正しく初期化されるように設定するためのコマンドです。evalは、指定されたコマンドを実行するためのシェルの組み込みコマンドです。

eval "$(rbenv init - zsh)"~/.zshrcに追加することで、Zshシェルが起動するときにrbenvが正しく初期化され、rbenvコマンドやrbenvで管理されたRubyのバージョンを利用できるようになります。

具体的には、rbenv init - zshは、現在のシェルにおけるrbenvの初期化スクリプトを出力します。evalによって、その出力されたスクリプトが実行されます。

このコマンドを実行することで、次回以降、Zshシェルが起動する際にrbenvが正しく初期化され、rbenvコマンドやrbenvで管理されたRubyのバージョンを利用できるようになります。

変更を反映するためには、ターミナルを再起動するか、source ~/.zshrcコマンドを実行して変更を再読み込みする必要があります。

ターミナルを再起動する

rubyのバージョンとパスを確認する。

ct@ct ~ % ruby -v
ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-darwin22]
ct@ct ~ % which ruby 
/Users/***/.rbenv/shims/ruby

railsをインストールする

# ディレクトリ作成
$ mkdir rails_test

# rails_testディレクトリに移動
$ cd rails_test

# ruby 3.0.0 のインストール
$ rbenv install 3.0.0

# ローカルで使うrubyのバージョンを固定
$ rbenv local 3.0.0

# rubyのバージョンが3.0.0と表示されればOKです(環境によって表示が異なります)
$ ruby -v
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]

# rails 6.1.3 のインストール
$ gem install rails -v 6.1.3
$ rbenv rehash

# railsのバージョン
$ rails -v
Rails 6.1.3

railsアプリを作ってみる

# カレントディレクトリにプロジェクトを作成
$ rails new .

# データベースの作成
$ bin/rails db:create
Created database 'db/development.sqlite3'
Created database 'db/test.sqlite3'

# railsサーバーの起動
# http://localhost:3000/ でrailsの起動を確認できればOK
$ bin/rails s
=> Booting Puma
=> Rails 6.1.7.3 application starting in development 
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Puma version: 5.6.5 (ruby 3.0.0-p0) ("Birdie's Version")
*  Min threads: 5
*  Max threads: 5
*  Environment: development
*          PID: 20421
* Listening on http://127.0.0.1:3000
* Listening on http://[::1]:3000
Use Ctrl-C to stop

local:3000でrailsの初期画面を表示されています。
これでrubyとrailsのインストールが完了しました。

終わりに

rubyとrailsのインストール方法が色々とありますが、rbenvを使う場合の手順をまとめてみました。
https://github.com/rbenv/rbenv

Discussion