英語方面から直観で感じるMacのHomebrew
Homebrew
HomebrewとはMacのパッケージマネージャですが、そもそもわけのわからん英単語が登場してよくわからんような感じに見えます。
昔雑に読んでよくわからないまま放置していたので、ちゃんと公式ドキュメントを読んで、日本人的にだいじだなーと思ったコア発想をここに置いておきます。
Homebrewにまつわる英単語の話
プログラミングとは一切関係ない文脈で、Homebrewingとは、自家製のお酒の醸造をすることです。要はビールを家で作ったりします。brewは「を醸造する」という意味の英単語です。
Homebrewにおいては、とても重要な概念です。
そんな感じで、
- formula (複数形でformulae) → レシピのこと。formulaは、数学の公式とか、決まりきったやり方という意味もあるけど、けっこう広い範囲で使う。
- Cellar → セラー。ワインセラーみたいなもの。
- keg → 小さいタル
- bottle → ボトルのこと
- cask → 大きいタル
- tap → 口をきる。tap a keg(タルからお酒を出す的な意味)。タップダンスのタップは全然関係ないです。
(https://www.allagash.com/blog/how-to-tap-a-keg/ から引用)
こんな感じで、全体的に、醸造関連の用語を使ってカッコよく説明しようとしているんだなー、というのがまず念頭にあるとすごくわかりやすくなる気がします。
パッケージマネージャの流れ
一般的に、パッケージマネージャは、レポジトリ(repository。貯蔵所という意味の英単語)と呼ばれる場所に、あるアプリケーションをインストールするために必要なものが全部格納されています。
Homebrewでは、これは https://formulae.brew.sh/formula/ で探すことができます。
たとえばnodeというアプリケーションの場合は、 https://formulae.brew.sh/formula/node にそのインストールに必要な情報が書かれています。
インストールに必要なものを formula
と呼んでいるようです。お酒のレシピみたいなふうに考えてもらうといいと思います。
つまりnodeのレシピなど、いろんなアプリケーションのレシピがここにたくさん置いてあります。Homebrew formulaeってなっているのは、formulaがたくさんあるのでformulaeです。-ae
ってなるタイプの複数形のやつです。まれによくあります。
実際のformula(レシピ)はRuby言語で書かれています。そのレシピは、上記の画像の中にあるFormula code: node.rb
のリンクから飛ぶといろいろと見ることができます。
実際に、↓のように、node.rbの中で、もろに「どうやってインストールするか」が書かれています。
この def install
メソッドの中では、いろいろ ./configure
とか make install
とかのC言語的なやつでよく使われるビルドもしてくれていて、Mac OS X用のビルドができるようになっています。誰かがこうやって書いてくれたみたいです。ありがたいです。
ところで、installは「〜を設置する」という英単語です。
なので、ぼくたちはformula(レシピ)をダウンロードしてきて、brew(〜を醸造する)→install(〜を設置する)するというような意味のことを次のコマンドでおこないます。
$ brew install node
これがどこにinstallされるかというと、 /usr/local/Cellar
にインストールされます。
「レシピをもとに自前でビール醸造したから、ビールセラーに置いとくか!!!」 みたいなノリです。
↓ 「いろいろインストールされてて嬉しいな」の図
↓ 「nodeがインストールされてて嬉しいな」の図
そして、実際には、/usr/local/Cellar/
以下のものを直接呼び出さずに、/usr/local/bin/
以下のディレクトリに、以下のようなシンボリックリンクができます。
そういうわけで、なんかいい感じにインストールしたらアプリケーションが使えるみたいです。
乾杯!🍻
おわりに
以上のことはじつは全部下の2つのページに書いてあります。特に片方はTOPページですが、とくに「これはビール醸造的なのを模してるんだよ」とは言及されてなくて「見りゃ誰でもわかんだろ」的に書かれているのでしんどいです。英語圏の人はとにかくずるいとおもいました。
Author And Source
この問題について(英語方面から直観で感じるMacのHomebrew), 我々は、より多くの情報をここで見つけました https://zenn.dev/harukaeru/articles/e0f81cdc5ea954著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol