1. Qiita
  2. 投稿
  3. bundler

Bundlerのインストール時に、初めてgemをインストールするときに詰まったこと。

  • 111
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

フロントエンジニア歴2年目、未だにコマンドのインストールが苦手なエンジニアです。
サンプルアプリをRailsで作ろうとして、Bundlerをインストールするときに詰まったのでメモしておきます。
主にパスの通し方で悩んでいました。

Bundlerについて

Bundler

Gemfileに記載されたパッケージの種類・バージョンのものをインストールするための仕組み。

Gemパッケージ

Rubyで使うライブラリやアプリケーションを、RubyGemというツールでインストールできるようにしたもの。

Gemfileに必要なGemとバージョンを記載しておく。npmとかBowerみたいなやつ。
ruby 2.x.x以上でデフォルトでgemコマンドが使えます。

動作確認環境

  • ruby 2.1.2
  • shellはzsh(詳しくはない)

1. Bundlerのインストール

$ gem install bundler  // Bundlerでもbundleでもないので注意
Fetching: bundler-1.7.4.gem (100%)
Successfully installed bundler-1.7.4
Parsing documentation for bundler-1.7.4
Installing ri documentation for bundler-1.7.4
Done installing documentation for bundler after 6 seconds
1 gem installed

$ bundle -v
zsh: command not found: bundle  // パスが通ってない
$ where bundle  // 見つからない

2. gem install後の約束ごと

上記記事を見るとrbenv rehashをすればいけるっぽい。

$ rbenv rehash
$ bundle -v
Bundler version 1.7.4  // 行けた!

3. パスを通す

が、ターミナルの別タブで再度bundleを呼び出せないので、rehashだけではなくパスを通さなくちゃいけないようです。
多分gemのパッケージがある場所をターミナルは知らないのかなと…。

bundleコマンドにパスが通っていなかったときの対処法 を参考に、gemファイルのインストール先を調べます。

$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - RUBY VERSION: 2.1.2 (2014-05-08 patchlevel 95) [x86_64-darwin12.0]
  - INSTALLATION DIRECTORY: /Users/user_name/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
  - RUBY EXECUTABLE: /Users/user_name/.rbenv/versions/2.1.2/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/user_name/.rbenv/versions/2.1.2/bin
  - SPEC CACHE DIRECTORY: /Users/user_name/.gem/specs
...

とあり、どうやらEXECUTABLE DIRECTORY(実行ファイルのあるディレクトリ?)は /Users/user_name/.rbenv/versions/2.1.2/bin のようなので、

インストール場所を確認

$ /Users/user_name/.rbenv/versions/2.1.2/bin/bundler -v
Bundler version 1.7.3

確かにあったので、上記パスを追加。

~/.zprofileに

path=(
  /usr/local/{bin,sbin}
  /Users/user_name/.rbenv/versions/2.1.2/bin
  $path
)

こんな感じで追加して、 $ source ~/.zprofile する。

$ bundle -v  # Bundlerの実行コマンドはbundle
Bundler version 1.7.3

やっとbundlerのインストールができました!

同じように、$ gem install rails でRailsをインストールするときには、パスは同じだったので変更不要でした。
ので、色んなサイトで書かれているBundlerのインストール手順は、既に何度かgemをインストールしている人の手順なのかな、と思っています。(違っていたらご教授いただけると嬉しいです…>_<)

4. rbenv rehashがやっていること

こちらのサイト(rbenv rehashは何をやっているのか?)で詳しく検証されていますが、

rbenv rehash が何を行っているかというと、 ~/.rbenv/shims というディレクトリに ruby 自体や gem でインストールした実行ファイルを起動するための実行ファイルを作ってくれる。

引用: rbenv で ruby のバージョン管理をする(Mac)

実行コマンドを認識できるように環境を整える調整役のようなものか・・と納得。一応ヘルプを見ておくと、

$ rbenv help rehash
Usage: rbenv rehash
Rehash rbenv shims (run this after installing executables)

インストール後に実行してね、と書かれていました。

gemをinstallしたら $ rbenv rehash は当たり前らしい。
めんどくさすぎてrbenv-rehashってgemができるくらい当たり前らしい。
絶対忘れるのでこっちも入れておきます。

参考サイト

Comments Loading...