Yuki Matsumoto

To be engneer soon / Ruby on Rails

rbenvからbundlerをインストールする

2019-02-12 Yuki MatsumotoRuby on Rails

bundlerのインストール
rbenv exec gem install bundler

rbenv exec はシステムrubyのgemではなくrbenvで現在有効なrubyのgemdであることを明記する表記 参考記事

現在有効なRubyにインストールされたgemを確認方法
rbenv exec gem list

インストールしたgemパッケージの保管場所の確認方法
rbenv exec gem which bundler

Railsローカルインストールとプロジェクトの作成

※新規Railsプロジェクトの作成時には毎回以下のステップを行う

bundlerを使って一時的にRailsをローカルにインストール プロジェクト直下のディレクトリにGemfileを作成

cat << EOS > Gemfile
source "http://rubygems.org"
gem "rails", "バージョンを指定" # ←ローカルインストールしたいRailsのバージョンを指定。指定しなければ最新版が入る。
EOS

bundleをvender/bundleディレクトリにインストール

bundle install --path vendor/bundle

※bundle install時に—pathをつけることでgemのインストール先をRuby環境からローカルのvendor/bundle以下に指定することが可能

ちなみに自分は上記を試してエラーが発生

An error occurred while installing nokogiri (1.10.1), and Bundler cannot
continue.
Make sure that `gem install nokogiri -v '1.10.1' --source 'http://rubygems.org/'`
succeeds before bundling.

どうやら必須ファイルのインストールが必要らしい

以下コマンドを実行

brew tap homebrew/dupes                   #リポジトリの追加
brew install libxml2 libxslt libiconv     #必須ファイルのインストール
brew link --force libxml2
brew link --force libxslt
brew link --force libiconv

そして指定したパスにNokogiriをインストール(参考)

NOKOGIRI_USE_SYSTEM_LIBRARIES=1 bundle install --path=vendor/bundle

これで問題なくインストールできた

以下コマンドでインストールしたgemを確認

bundle list

Railsプロジェクトを作成(ようやっとここまできた!)

bundle exec rails new example --skip-bundle

※必ず--skip-bundleをつける。つけないとRuby環境にgemがインストールされる

Railsのローカルインストールのために使ったbundlerの環境とRailsを削除する

rm -f Gemfile
rm -f Gemfile.lock
rm -rf .bundle
rm -rf vendor/bundle

今回も以下の記事をほぼコピらせてもらいました。(ありがとうございます)
Rails開発環境の構築(複数バージョン共存可能)(Homebrew編)

最後に

明日は再度bundleのインストールとRailsプロジェクトの起動まで進めようと思います。