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 をいれていて、そこからいまのマシンに移行した。移行するときに復元オプションを使ったかもしれず、そのせいで持ち越されてきたというのがもっともありそうな話。