Posted at

brew tapとは

More than 3 years have passed since last update.

brew tapってなんだろうと調べて有用そうなものがgithubしかなさそうだったので、和訳をしました。せっかく読んでも使わないと忘れる(使わなそうな)のでここに残します。 https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/brew-tap.md


brew tap

brew tapとは公式以外のリポジトリをフォーミュラとしてHomebrewに追加するもので、brewのもとでinstall,uninstall,updateなどが行えます。もちろん自分が公開しているものも簡単に追加できます。


コマンド

他の引数を指定せずにbrew tapとすると、最近tapで追加したものが表示されます。

$ brew tap

homebrew/dupes
mistydemeo/tigerbrew
edavis/emacs



  • brew tap <user/repo>はtapの基本的な使い方で、https://github.com/user/repo のリポジトリの浅いクローンを作成します。そうすると、brewはこのリポジトリを公式のものとして認識するので、brew [un]installによってインストールなどが行えます。加えて、brew updateによって自動にアップデートも行います。


  • brew tap <user/repo> <URL>はURLから浅いコピーを作成します。上の1引数バージョンとは異なり、URLはGitHubにあることを想定していません。また、HTTPである必要はありません。


  • --fullを追加することで、完全なコピーをローカルに作成します。


  • brew tap --repairは、フォーミュラがうまく動かない時に使うみたいです。


  • brew untap user/repoで与えられたtapを削除します。また、一度に複数untapできたりします。


リポジトリの命名規則


  • GitHubなら、リポジトリ名はhomebred-何かのようにする必要があります。そうしないと、brew tap<URL>の第2引数が必要になり、URLを指定する必要があります。(接頭尾がhomebrew-(何か)の場合は、brew tap (何か)でtapできます)


フォーミュラの名前が重複している時

もし追加したいリポジトリがすでに公式に存在する場合、brew tap-pin username/repoによって優先順位をつけることができます。(これによって追加したpinはbrew tap-unpin username/repoによって外します。)

brew install fooした時、Homebrewはいつも次の優先順位でフォーミュラを探します。


  • ピン留めされたtap

  • 公式のフォーミュラ

  • 他のtap

もし、公式にvimのフォーミュラがあるが、他で公開されているvimを利用したい場合は、pinによって解決できる。