Rubygem にはパスというのがある。次のコマンドでそれをみられる。
gem env gempath
bundle install はこの gempath がデフォルトのインストール先となるように作られている。
しかしこのデフォルトは弱い。実際のところ、環境によって変わることのほうがずっと多い。たとえば ~/.bundle/config をあけてみると、
~~~ BUNDLE_PATH: “vendor/bundle”~~~
などとあって、どのレポジトリで bundle install してもこのパスが “デフォルトの” インストール先になる。
キャリアのごく初期のころに、 bundle install --path vendor/bundle というのをおまじないとして覚えていた。もうこれはやらなくなったが、私用のマシンはずっとこれを記憶していたらしい。実際のところ、 --path など使わなくなって久しいので vendor/bundle に向かうのが当たり前だとさえおもっていた。いやはや。ややこしいので、このファイルを消した。
いま Bundler 2.3.11 が目の前にあって、これで bundle install --path を指示すると、 deprecation warning が出る。 Bundler 3 では消えてなくなるらしい。そしてレポジトリのルートに ./.bundle/config ができる。ホームディレクトリにはできない。なるほど。僕はなにをどうやってこれをホームに生み出したんだろう?
いつからあったファイルだったんだろう。大学進学のときに買った MacBook に Ruby をいれていて、そこからいまのマシンに移行した。移行するときに復元オプションを使ったかもしれず、そのせいで持ち越されてきたというのがもっともありそうな話。