ユユユユユ

webエンジニアです

rm ~/.bundle/config

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 ができる。ホームディレクトリにはできない。なるほど。僕はなにをどうやってこれをホームに生み出したんだろう?

いつからあったファイルだったんだろう。大学進学のときに買った MacBookRuby をいれていて、そこからいまのマシンに移行した。移行するときに復元オプションを使ったかもしれず、そのせいで持ち越されてきたというのがもっともありそうな話。