MacへのGNUのコマンドのインストール

2020-08-11  /  Mac開発環境

久しぶりにMacminiの環境構築を行うことにしたので、セットアップ内容をメモしておきます。今回は基本的、日常的に利用するコマンド群のインストールについてです。

Homebrewのインストール

ひとまずHomebrewをインストールします。公式サイトの手順より以下のコマンドを実行します。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

時間は少々かかりますが特に問題はなく完了できます。

GNUのコマンドのインストール

coreutilsなどのコマンドはgというprefixがつくのですが、これはめんどくさいので同名のコマンドで上書きしてほしいです。 以前、自分で書いたMacの開発環境構築メモ - kawaken’s blogがあるのですが、オプションが変わっているようで —with-default-names が利用できなくなっています。

keg-onlyという特定の場所にファイルをインストールするだけ(/usr/local/binなどに配置しない)というコマンドもあるので、ひとまずインストールした後 PATHを追加する必要があります。

% brew install binutils
(snip)
If you need to have binutils first in your PATH run:
  echo 'export PATH="/usr/local/opt/binutils/bin:$PATH"' >> ~/.zshrc
% echo 'export PATH="/usr/local/opt/binutils/bin:$PATH"' >> ~/.zshrc
% brew install findutils
(snip)
All commands have been installed with the prefix "g".
If you need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:
  PATH="/usr/local/opt/findutils/libexec/gnubin:$PATH"
% echo 'export PATH="/usr/local/opt/findutils/libexec/gnubin:$PATH"' >> ~/.zshrc

以降、似たようにPATHを追加する必要がある旨の表示が出てきますが、後でまとめて PATH に追加します。

brew install gnu-indent gnu-sed gnu-tar gnu-which
brew install gawk grep watch gzip base64
brew install diffutils coreutils moreutils

PATHの追加

インストールしたコマンドは基本的には /usr/local/opt/*/libexec/gnubin というディレクトリに配置されています。

% find /usr/local/opt -type d -follow -name gnubin
/usr/local/opt/coreutils/libexec/gnubin
/usr/local/opt/gnu-indent/libexec/gnubin
/usr/local/opt/gnu-tar/libexec/gnubin
/usr/local/opt/grep/libexec/gnubin
/usr/local/opt/gnu-sed/libexec/gnubin
/usr/local/opt/gawk/libexec/gnubin
/usr/local/opt/findutils/libexec/gnubin
/usr/local/opt/gnu-which/libexec/gnubin

なので、これらのディレクトリを PATH に含むように.zshrcに設定します。

# append gnubin to PATH
for d in /usr/local/opt/*/libexec/gnubin; do
  export PATH=$d:$PATH
done

インストールした段階で /usr/local/binに配置されるコマンドもありますが、ひとまずこれで設定してみました。