Help us understand the problem. What is going on with this article?

bundle install時に"[DEPRECATED] The `--path` flag is deprecated"という警告が発生した場合の対応手順

はじめに

Bundler 2.1ではBundler 3で使えなくなる機能に対して警告が表示されるようになりました。

参考:【翻訳】Bundler 3アップグレードガイド - Qiita

この関係でBundler 2.1ではbundle install--pathオプションを付けると以下のような警告が発生します。

$ bundle install --path vendor/bundle
[DEPRECATED] The `--path` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set path 'vendor/bundle'`, and stop using this flag

この記事ではこの警告に対する対応手順を説明します。

なお、「今日初めてBundlerを使った」というRuby初心者さんは、必ずこの記事を最後まで読んでください!(大事な話が書いてあります)

対応手順

すでにbundle installを実行した場合

警告は出るものの、bundle install実行後も--path vendor/bundleのオプションは記憶されます。
ですので、それ以上の操作は必要ありません。

bundle installをまだ実行していない場合

bundle installをまだ実行していない場合は、bundle installを実行する前にbundle configコマンドで明示的にpathを設定してください。
それから--pathオプションなしでbundle installを実行すると警告は発生しません。

なお、pathの設定方法はglobalとlocalの2種類があります。
従来のbundle install --path vendor/bundleと同じ動きになるのはlocalの方です。

# マシン全体でbundle install実行時のインストール先を
# vendor/bundleに設定する場合(global)
bundle config set path 'vendor/bundle'

# そのプロジェクト内でのみ、bundle install実行時の
# インストール先をvendor/bundleに設定する場合(local)
bundle config set --local path 'vendor/bundle'

# --pathオプションなしでインストールを実行する
bundle install

最後に:でもちょっと待って!!本当にpathの指定は必要?

もしあなたが今までBundlerを使ったことがなく、「ネットで見つけたBundlerの紹介記事を見ながらbundle installをしようとしたら警告が出たので、警告メッセージでググってこのページにやってきた」という人であれば、きっと--path vendor/bundleを付ける必要はありません。

--path vendor/bundleのオプションを付けることを推奨している多くのWeb記事は、その必要性を十分に理解していないものが多いです。

pathオプションは特殊な条件下でしか必要になりません。
ですので、「今日初めてBundlerを使います」というような初心者さんは、 pathを指定せずにシンプルにbundle installを実行してください。

(すでにbundle install --path vendor/bundleを実行した人は、次回からpathオプションなしでbundle installしてください)

この件に関する詳しい話は以下の記事にまとめているので、こちらも読んでもらえると幸いです。

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away