RubyのパッケージマネージャであるBundlerをインストールする際、またはBundlerを使用してGemをインストールする際に、様々なパーミッションエラーやインストール失敗が発生することがあります。
gem install bundler
の実行時にパーミッションエラーが発生することがあります。これは、デフォルトでシステム領域にインストールしようとするためです。この問題を回避するためには、sudo gem install bundler -n /usr/local/bin/
としてユーザーエリアにインストールすると良いでしょう。
さらに、Gemfile.lock
内のbundlerのバージョンとインストールするバージョンを合わせることで、後々のトラブルを避けることができます。例えば、sudo gem install bundler -n /usr/local/bin/ -v 1.17.3
のようにバージョンを指定してインストールします。
一方、bundle install
実行時にもパーミッションエラーが発生することがあります。これは、デフォルトでシステム(グローバル)領域にGemをインストールしようとするためです。この問題を解消するためには、bundle install --path vendor/bundle
として、プロジェクトのローカルディレクトリにGemをインストールするよう指定します。
しかし、場合によってはbundle install --path vendor/bundle
が失敗することがあります。特に「An error occurred while installing http_parser.rb (0.6.0), and Bundler cannot continue.」のようなエラーが発生した場合、インストール先のパスにスペースが含まれていないか確認することが必要です。