Homebrewを使うのをやめた

プログラムのお仕事してるといろんな言語やツールをインストールするのが大変ですが、パッケージ管理ツールとかを使うと今度はそのパッケージ管理ツール由来のトラブルに巻き込まれたりするんですよね。それが面倒でHomebrewとかなんとかenvとか使わなくなってだいぶ経ちました。

今はほとんどのツールを手動でインストールしています。だいたいは ./configure --prefix=$PREFIX && make && make install。scalaとかはzip落としてきて展開してます。

ディレクトリ構成とかどうでも良いと思うんですが、私は$HOME/opt/srcにtarとかzipとか展開したソースを置いてprefixを$HOME/opt/pkg/... にし、$HOME/opt/bin以下にシンボリックリンク作ってPATH通してます。複数のバージョンを併用するのも単純にフルパスでコマンド叩けば良いだけですごく単純です。

/Users/toshi/opt
├── bin
│   ├── php -> /Users/toshi/opt/pkg/php-7.2.5/bin/php
│   ├── python3 -> /Users/toshi/opt/pkg/python-3.6.5/bin/python3
│   ├── ruby -> /Users/toshi/opt/pkg/ruby-2.5.1/bin/ruby
│   ├── scala -> /Users/toshi/opt/pkg/scala-2.12.6/bin/scala
├── pkg
│   ├── php-7.2.5
│   ├── python-3.6.5
│   ├── ruby-2.5.1
│   ├── scala-2.12.6
└── src
    ├── Python-3.6.5
    ├── php-7.2.5
    ├── ruby-2.5.1

依存ライブラリ集めたりビルド環境整えたり確かに手間はかかるんですが、その代わり各ツールへの理解は深まります。ビルドのエラーが出ることはたまにありますが結構単純なやつが多いのでそんなに困るほどではないです。少なくともHomebrewとかなんとかenvをデバッグする時のような不毛さはないし、自分の環境もよく把握できるのでトラブル自体が減るように思います。

もうとにかく依存ライブラリとか多くてビルドが死ぬほどめんどくさい!ってのはdockerとか使ってごまかしたりします。あとはプログラミング言語みたいに複数バージョン使いわける必要性があるやつでなければ公式のインストーラを使うこともあります。その辺明確な基準は持っていないです。まあ単にHomebrewが気に食わなかっただけですね。