

Go をインストールしたら最初に `go get -u golang.org/x/tools/...` をして `gorename` や
`goimports` などエディタが静的解析等で使うであろうツールを一括でインストールしていました。

最近 Ruby を使いはじめて、これだと golang.org/x/tools/cmd/bundle と Ruby の Bundler
のコマンド名がどちらも `bundle` になっていて被ると気づきました。Go 側の issue によるとこれを直すつもりは無いようです:
<https://github.com/golang/go/issues/23700> 。私の環境の PATH は `$GOPATH/bin`
の方が先頭に入っているため、`bundle` コマンドで Go の bundle が呼ばれてしまい困ります。

PATH の順番を弄ったり Go tools を一括インストールするのではなく個別にしたりする解決法もありますが、やや面倒に思っています。（PATH
は他のツールとの兼ね合いもあり……。）

Go の bundle は当面のところ使わないので、良い感じに Ruby の Bundler を使えるようにする方法は無いでしょうか。

環境: macOS Catalina

※自己回答していますが、環境構築するにあたってもっと便利な方法があれば知りたいです。


CC BY-SA 4.0
2020-04-21T02:56:59.670
65806
2020-04-21T06:39:14.753
2020-04-21T04:06:23.373
19110
19110
question
ruby go bundler
Go tools を揃えると Ruby の Bundler と名前が被る


Go tools を一括インストールした後、bundle だけアンインストールするのでとりあえず問題なさそうでした。

[code]

    go clean -i golang.org/x/tools/cmd/bundle
    
[/code]


CC BY-SA 4.0
2020-04-21T02:56:59.670
65807
2020-04-21T02:56:59.670
19110
65806
answer


[direnv](https://github.com/direnv/direnv) を用いると、「特定のディレクトリだけで有効な PATH の
prepend」を実現できそうです。

具体例: `.envrc` にて、

[code]

    PATH_add "/path/to/bin/dir"
    
[/code]

この `.envrc` ですと、

  1. そのディレクトリに cd したら PATH に prepend される
  2. そのディレクトリから cd して他の場所に移動すると、 prepend が解除される

何がどうなって上記が実現できているのかは、私はちょっと把握できていないです。

さらに `.envrc` はただのシェル実行ファイルですので、任意に整理ができそうな雰囲気はあります。


CC BY-SA 4.0
2020-04-21T06:39:14.753
65813
2020-04-21T06:39:14.753
754
65806
answer