• 作成日:

Macにgemをインストールする流れ - Homebrew→rbenv→bundlerで管理する

Macにgemをインストールする

今回はMacでgemをインストールして、バージョンなど管理する流れを説明します。

説明する環境は以下の通りです。

  • macOS Mojar v10.14.6
  • Visual Studio Code v1.39.2

Macにgemをインストールする流れ

まずMacにHomebrewをインストールしてパッケージを1箇所で管理できるようにします。次にHomebrewを通してrbenvをインストール。rbenvではRudyのバージョンのインストール、バージョンの切り替えを行ってくれます。これでグローバルでもローカルでもRubyのバージョンの切り替えが簡単に。最後にgemのパッケージ(ライブラリ)を管理するbundlerをインストール。これでgemのバージョン管理から、依存関係にあるgemの一括インストールが可能になります。

MacにHomebrewをインストール

homebrewのインストールはターミナルを開いて以下のコマンドを打ちます。公式ページにある通りですね。

Homebrew公式ページ

 

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 

以下のコマンドを打ってインストールできているか確認します。

brew -v

 

インストールできていると以下のように表示されます。

Homebrew 2.1.15
Homebrew/homebrew-core (git revision 67b9; last commit 2019-10-27)

 

Homebrewを通してrbenvをインストール

Homebrewを使ってrbenvをインストールします。rbenvには今あるRubyを管理する機能しかないので、Rubyをインストールできるruby-buildも一緒にインストールします。

brew install rbenv ruby-build

 

rbenvとruby-buildがインスールされたか確認します。

brew list

 

以下のようにhomebrewのリストにあればインストール完了です。

mac$ brew list
autoconf	nodebrew	pkg-config	ruby-build
gettext		openssl@1.1	rbenv
git		pcre2		readline

 

Rubyのバージョンをインストール

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

rbenv install -l

 

出力されたRubyのバージョンの中から数字だけのバージョンを選択してインストールします。

rbenv install 2.6.5

 

インストールできているか以下のコマンドで確認します。

rbenv versions

 

インストールしたRubyは以下のように表示されます。*はいま使っているバージョンに示しています。v2.6.5を使うためにはバージョンの切り替えをする必要があります。

mac$ rbenv versions
  system
* 2.6.4 (set by /Users/mac/.rbenv/version)
  2.6.5

 

グローバルでも新しいバージョンで使うなら以下のコマンドを使います。MacにはデフォルトでRubyが入っていますが、これで新しくインストールしたバージョンを適用できます。

rbenv global 2.6.5

 

ruby -vをターミナルで打っても、rubyのバージョンが切り替わっていないことがあります。そのときは.bash_profileを書き換えましょう。以下の記事を参考にしてみてください。

 

グローバルではなく、プロジェクトごとに適用させたい場合は以下。

cd project_a # project_aのディレクトリまで移動
rbenv local 2.6.5 # project_aにはv2.6.5を適用

 

bundlerをインストール

gemのパッケージを管理するためにbundlerをインストールします。gemを管理するbundler自体もgemなので、グローバルにインストールします。

rbenv exec gem install bundler

 

gemを新しくインストールするとパスが通っていないことがあるので念のためrehashします。それからインストールできてるかバージョンの確認をしましょう。

rbenv rehash # gemのパスの確認
rbenv exec bundler -v # bundlerのバージョンを確認
Bundler version 1.17.2

 

gemのパッケージをインストール

bundlerまでインストールできたら、いよいよgemをインストールをします。まずは以下のコマンドでGemfileファイルを作成します。

rbenv exec bundler init

 

Gemfileを作成できたら、インストールしたいgemを書いていきます。今回はターミナルからViを使ってGemfileを操作します。

vi ~/Gemfile

 

ターミナル上でGemfileの中を見ることができるので、以下の順番で操作します。

  • aを押してテキスト編集モードにする
  • インストールしたいgemを書き込む
  • Escを押してテキスト編集モードを終わらせる
  • :wq を押して書き込んだ内容を保存

sassをインストールをするときは以下のように書き込みます。

 

Gemfileにインストールしたいgemを書いたら実際にインストールします。bundlerを使うとgemをインストールしたいディレクトリを指定できます。今回はvendor/bundleにインストールしていきますが、特にディレクトリを指定してもしなくても問題はないようです。

bundle install時に--path vendor/bundleを付ける必要性は本当にあるのか、もう一度よく考えてみよう

bundle install --path vendor/bundle

 

1度パスを指定したら次回からbundle installだけ打てば最初に指定したディレクトリにインストールされます。指定したパスは.bundle/configに記録されているので、パスの変更する場合はこのファイルを編集しましょう。

gemを実行する

bundlerで管理されているgemを実行するにはbundle execをつける必要があります。例えばcompassを実行するには以下のように打ちます。

bundle exec compass

bundle execを省略するには?

gemの実行に毎回bundle execをつけたくない方は、最初のgemのインストール先を指定するときに以下のコマンドを打ちます。

bundle install --binstubs --path vendor/bundle

 

これでbundle execをつけずにgemを実行することができます。

まとめ

Macにgemをインストールする流れを説明しました。複数人で開発を行うのかによってもgemを置く場所が変わってくると思います。開発環境に合わせてインストール先は変更してください。今回の記事を書くのにとても参考になったサイトを紹介しておきます。