WSL・Ubuntu に Linuxbrew (Homebrew) を入れてみる

MacOS でおなじみのパッケージ管理ツール、Homebrew。それを Linux でも利用できるということで、試してみた。

以前は Linuxbrew と呼ばれていたらしいが、現在は特に MacOS 版と区別なく Homebrew と呼称されている。WSL 上の Ubuntu 18.04 と、素の Ubuntu 18.04 マシンとで実際にインストールしてみた。


公式サイトを見ながらインストールしてみる。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
# Enter で進める

インストールが粛々と進む。

sudo suroot ユーザになれるユーザで作業していれば、大抵は /home/linuxbrew/ 配下に本体が配置される。/home/linuxbrew/ 配下へのインストールができないと判断された場合は、自動的に ~/.linuxbrew/ (ユーザホーム) にインストールされるようだ。前者の方がインストール後に出来ることの権限が広いようだ。

自分が普通に試した限りでは /home/linuxbrew/ 配下にインストールされた。

続いて、公式ページでは以下の4行のコードを流せと書かれている。

test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile

前述のとおり、~/.linuxbrew//home/linuxbrew/ のどちらかにインストールされるので、それを見極めて brew shellenv を実行しているらしい。brew shellenv は数行の export 文が出力されるので、コレを eval することで、brew コマンドがそのシェルで動作するようになる。

で、あとはこの brew shellenv が出力する export 文を ~/.profile~/.bash_profile に記述して恒久的に PATH を通しているワケ。

当方環境では /home/linuxbrew/ にインストールできたので、1行目は無効で2行目が有効。最終的に以下の内容が brew shellenv から出力された。

$ /home/linuxbrew/.linuxbrew/bin/brew shellenv
export HOMEBREW_PREFIX="/home/linuxbrew/.linuxbrew";
export HOMEBREW_CELLAR="/home/linuxbrew/.linuxbrew/Cellar";
export HOMEBREW_REPOSITORY="/home/linuxbrew/.linuxbrew/Homebrew";
export PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin${PATH+:$PATH}";
export MANPATH="/home/linuxbrew/.linuxbrew/share/man${MANPATH+:$MANPATH}:";
export INFOPATH="/home/linuxbrew/.linuxbrew/share/info:${INFOPATH}";

自分は ~/.bashrc に以下のように書いた。root ユーザ以外で Linuxbrew を有効にするという書き方だ。同じ .bashrcroot ユーザのホームに配置した時もエラーが出ないようにしてある。

if [ "$(whoami)" != 'root' ] ; then
  # Homebrew Linuxbrew
  test -d '/home/linuxbrew/.linuxbrew' && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
fi

コレで brew コマンドが動作するようになった。

あとは MacOS と同様にインストールが出来る。よきよき。