Linux環境の HomeBrew がデフォルトは /home/linuxbrew/.linuxbrew の訳

こちらの記事でHomeBrewが使えるようになったのですが

https://rensaba-programer.jp/2022/08/07/レンタルサーバーにhomebrewを入れる/

インストール先のパスがデフォルトでは /home/linuxbrew/.linuxbrew になっており、sudo権限が無い場合には /home/<ユーザーディレクトリ>/.linuxbrew にインストールされます。

このままで使用する事は一応できるのですが、基本的には推奨されていないインストール先になっています。

brew doctor を実行しても以下のWarningの通り、基本的には推奨されていないパスにインストールしているので、問題が出た場合にはGitHubのissueなどで質問などせず、自分で解消してプルリクを送ってくれとのメッセージが出ます。

$ brew doctor
~~~~

Warning: Your Homebrew's prefix is not /home/linuxbrew/.linuxbrew.
Some of Homebrew's bottles (binary packages) can only be used with the default
prefix (/home/linuxbrew/.linuxbrew).
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew's GitHub,
Twitter or any other official channels. You are responsible for resolving
any issues you experience while you are running this
unsupported configuration.

これは何故かと言うとこちらのissueでも質問されていました。

Default install to user’s home directory? · Issue #762 · Linuxbrew/brew
https://github.com/Linuxbrew/brew/issues/762

要約すると HomeBrew のインストールでは毎回ビルドする事はせず、ビルド済みのバイナリパッケージ(bottles)をダウンロードする方針となっており、bottlesが無い場合にビルドするようになっています。

ビルド時のライブラリのパスは動的に変更する事ができないので、bottlesを作成した際のパスとして使用している /home/linuxbrew/.linuxbrew を基本のパスとしているという理由でした。

推奨されていない /home/<ユーザーディレクトリ>/.linuxbrew でもbottlesのインストールは可能ですが、バイナリパッケージの実行をした際にエラーが出る可能性が高いです。

エラーが出た場合にはソースインストールを行う必要があるため、--build-from-source のオプション、もしくは省略形の

$ brew install <パッケージ名> -s

のように -s を使用してソースからビルドを行なっていきましょう。

HomeBrew なのに何故 LinuxBrew?

昔はLinux版のHomeBrew として存在していた LinuxBrew ですが、統合したのでその際の名残です

https://github.com/Linuxbrew/brew