385
282

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

brew tapとは

Last updated at Posted at 2016-01-07

brew tap

brew tapコマンドは、Homebrewが管理・更新・インストールするフォーミュラのリストに、公式以外のリポジトリ(サードパーティリポジトリ)を追加するためのものです。デフォルトではGitHub上のリポジトリが想定されていますが、必ずしもGitHubに限りません。

  • 引数を指定せずにbrew tapとすると、現在tapされているすべてのリポジトリが表示されます。
    例:

    $ brew tap
    homebrew/cask
    homebrew/core
    petere/postgresql
    
  • brew tap <user>/<repo>は、https://github.com/<user>/homebrew-<repo>のリポジトリを$(brew --repository)/Library/Tapsに浅いクローンを作成します。その後、Homebrewはこれらのフォーミュラをhomebrew/coreの公式リポジトリと同様に扱えるようになり、brew [un]installでインストールやアンインストールが可能、またbrew updateで自動更新されます。

  • brew tap <user>/<repo> <URL>は、指定された_URL_からリポジトリの浅いクローンを作成します。1引数版と異なり、_URL_はGitHubである必要はなく、HTTPである必要もありません。ただし、GitHub以外のtapでは自動更新を有効にするために、brew tap --force-auto-update <user>/<repo>の実行が必要です。

  • --fullを付与すると完全なコピーが作成されます。)

  • brew tap --repairは、シンボリックリンクベースからディレクトリベースの構造へフォーミュラを移行します。(通常は一度だけ実行すれば十分です。)

  • brew untap user/repo [user/repo ...]で指定したtapを削除できます。複数のtapも同時に削除可能です。

リポジトリの命名規則と想定

GitHubでは、リポジトリ名はhomebrew-何かとする必要があります(接頭辞「homebrew-」は必須)。ただし、コマンドラインでbrew tapを使用する際は、brew tap username/foobarのように「homebrew-」を省略してもかまいません。Homebrewは必要に応じて自動的に「homebrew-」を補完します。

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

あなたのtapに、homebrew/coreにも存在するフォーミュラが含まれていても問題ありませんが、あなたのバージョンをインストールする際は、<user>/<repo>/<formula>のように完全修飾名を指定する必要があります。

brew install fooを実行すると、Homebrewは以下の順序でフォーミュラを検索します:

  • 公式(core)のフォーミュラ
  • その他のtap

特定のtapからインストールする場合は、完全修飾名を使用してください。
例:

brew install vim                   # homebrew/coreからインストール
brew install username/repo/vim       # カスタムtapからインストール

そのため、カスタマイズしたフォーミュラは、インストールを容易にするために新しい名前を付けることが推奨されます。

参考

385
282
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
385
282

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?