tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【Mac】Homebrewとは? - からのFormula、keg、Cellar、Tapってなに?

はじめに

Macな環境はHomebrew使いますよね。

自分も長い事使っていますが、
FormulakegCellarTapあたりについて理解がぼやぁ〜としているなーと思ったので理解整理のための自分メモです。

タイトルとは裏腹にHomebrewそのものの説明は少なめです、すみませんすみません...

f:id:tweeeety:20180503231014p:plain

もくじ

  1. Homebrewとは
  2. Homebrew terminology
  3. Homebrewでのパッケージやアプリのインストール方法
    • brew install
    • brew cask install

1. Homebrewとは

Homebrewそのものの説明ではないと言ったものの
前提としてHomebrewについても触れておきます。

Homebrewとは?

wikiからの引用です

Homebrew(ホームブルー)は、macOSオペレーティングシステム上でソフトウェアの導入を単純化するパッケージ管理システムのひとつである。
MacPortsFinkと同様の目的と機能を備えている。LinuxDebianのAPTに似た使用感で急速に利用が広がっている。  
Homebrew (パッケージ管理システム))

Homebrewのinstall

これも簡単に触れる程度に

$ ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)"

home-brewとは?

home-brewを和訳すると自家醸造飲料(ビール、酒)のことらしいです。

参考サイトの例えが非常にわかりやすかったので引用させていただくと

手順(調理法formula)通りにパッケージを ビルド(醸造brew)して保存(/usr/local/cellerに格納)して、 使う(/usr/loca/binにリンク)ってことです。  
HomeBrewの仕組みについてまとめておく

という感じです。

homebrewのパッケージ管理

一部参考サイトを引用させて頂きますが、主に以下の2種類があります

  1. バイナリを取得するもの
    • ビルド済みのものを配布
  2. ソースコードを取得してビルドするもの

homebrewとは何者か。仕組みについて調べてみた

2. Homebrew terminology

ここからが本題です。

terminologyとは用語の事です。
用語とはFomulaとかCellarとかのことですね。

公式サイトにもHomebrew terminologyとして載っています。
f:id:tweeeety:20180503231110p:plain

公式サイトから引用しつつ、
自分なりに説明とたとえを記載してみました。

Homebrew - Formula Cookbook

公式:Term 公式:Description 補足 ビール作りでいうと
Formula The package definition パッケージの説明書や手順書 調理法
Keg The installation prefix of a Formula Formula のインストール先パス タル、熟成用
opt prefix A symlink to the active version of a Keg version違いのkegに対するactiveへのsymlink 使用中のタルの目印
Cellar All Kegs are installed here keg群のインストール先のパス 地下貯蔵室
Tap A Git repository of Formula and/or commands 公式以外のFormulaやコマンドがおいてあるgitリポジトリ 手順書の集まりとするとCookpad的な..!?
Bottle Pre-built Keg used instead of building from source ソースからビルドするタイプのbuildされていないkeg kegができあがったものとすると、こちらは自宅用手作りキッド的な感じ
Cask An extension of homebrew to install macOS native apps macOSのnativeアプリのパッケージ置き場 自家醸造ビールの酒樽置き場
Brew Bundle An extension of homebrew to describe dependencies アプリなどを一括でインストールするやーつ 1ずつの手順書があるとすると、全部まとめたオードブル手順書みたいな感じ

書いてて無理矢理すぎだろ...
と自分でも思いましたが説明下手にはご愛嬌を...w

3. Homebrewでのパッケージやアプリのインストール方法

Homebrewでのパッケージやアプリのインストール方法2つに触れておきます

  • brew公式のもののインストール
  • brew公式以外のもののインストール

brew公式のもののインストール

コマンド例
# パッケージをさがす
$ brew search <パッケージ名>

# インストール
$ brew install <パッケージ名>
参考

brew公式以外のもののインストール

bew tapとは

brew tapは Homebrewに実装されてるコマンドで、
GitHubのレポジトリにある パッケージをそのままインストールするコマンドです。
 
Homebrewの拡張:brewdler, tap, cask

コマンド例
# brew tapコマンドでcaskのリポジトリ登録
$ brew tap caskroom/cask

# お目当てのものをインストール
$ brew cask install google-chrome
参考
補足

以下のように、以前はbrew tap caskroom/caskも必要だったようですが今は必要なくなっています。

$ brew tap caskroom/cask

# caskをインストール?
$ brew install brew-cask

$ brew cask install google-chrome

その他: ①や②をまとめた手順を書いておいてのインストール

一連の操作を記述したbrewfileを作り
brew bundleコマンドでまとめてインストールすることも可能です。

# Homebrew/bundleをインストール
$ brew tap Homebrew/bundle

# Brewfileを作成する
# dumpに頼らず自身で作るのもあり
$ brew bundle dump

# インストール
$ brew bundle
参考

おわり

自分のたとえがイケてないのが気にかかりますが、
整理してまとめるとすっきりしますね! enjoy!\(^o^)/