Macにgemをインストールする流れ - Homebrew→rbenv→bundlerで管理する
今回は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のインストールはターミナルを開いて以下のコマンドを打ちます。公式ページにある通りですね。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
以下のコマンドを打ってインストールできているか確認します。
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
以下のようにruby-buildとrbenvがリストにあればインストール完了です。
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を使うためにはバージョンの切り替えをする必要があります。
$ 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を置く場所が変わってくると思います。開発環境に合わせてインストール先は変更してください。今回の記事を書くのにとても参考になったサイトを紹介しておきます。