37. Homebrew Demystified: OS X’s Ultimate Package Manager

Tatsuya Asami
5 min readAug 21, 2018

--

【所要時間】

1時間13分(2018年8月21日)

【概要】

Homebrewについて

【要約・学んだこと】

What is Homebrew?

HomebrewはOS Xのパッケージマネージャーのこと。

Packages

Packageはソフトウェアの開発者に配布されたソースコードの束のこと。マシンにコンパイルしてインストールすることができる。
それらは様々なファイルで圧縮されたアーカイブ(zipと違うわけではない)より少ない。
packageは”installable(インストール可能)”と呼ばれる特別な機能を持つ。

つまりパッケージはインストール可能なソースコードの束のことだ。

ソースコードのバンドルをマニュアルでダウンロードし、インストールしようとすると、インストールに手間がかかるし、バージョン違いなどの前提条件を満たさず失敗しやすい。

そのようなソフトウェアの一例として、 Imagemagick がある。Imagemagickはライブラリで、imageの操作をコマンドラインツールでできる。素人の言葉で言えば、ターミナルアプリケーションにコマンドを入力することで、様々な画像を編集するのに役立つ一連のプログラムだ。

ライブラリは他のプログラムでも使うことができる。つまり言語のための追加のアップグレードをインストールすれば、Imagemagickのコマンドを、JavaやPHPで開始することができる。

このライブラリをインストールするのは簡単だ。インストーラーバイナリをダウンロードし、実行するだけだ。しかし、ソフトウェアを最新の状態に保つのは簡単ではない。似たようなライブラリをたくさんインストールし、どこに置いたのかがわからなくなる。ここでpackage managerの出番だ。

Package Manager

パッケージマネージャは1つのシンプルなコマンドで上記の全てを操作するアプリだ。

What Does a Package Manager Do?

  1. 1つのコマンドを入力として受け取り、インストールしたいソフトウェアパッケージを特定する。
  2. パッケージのソースコードをダウンロードする。(Finkの場合、pre-built application)
  3. dependencyが存在するかどうか判断し、もしそうであればそれらもダウンロードする。
  4. ソースコードファイルからdependencyをコンパイル(build)し、それらをインストールする。
  5. 要求されたソフトウェアを構築する。
  6. 定義済みの場所にインストールする。

したがって、前述したImagemagickをHomebrewにインストールするのは、brew install imagemagickを実行するのとおなじくらいシンプルなことだ。

Homebrew Installation and Specifics

Homebrewをインストールした。

brew doctorを実行すると、Hombebrewが自己診断を実行し、全てが正常に動作しているかどうかレポートをする。おかしい点の詳細を教えてくれるので、すぐに修正できる。

Tats-MacBA-4:~ AsamiTasuya$ brew doctor
Your system is ready to brew.

次に brew update で新しいformulae をダウンロードする。brew updateはHomebrewのアップデートだ。

formulaeは特定のソフトウェアをどうやってインストールするか、どこで必要なファイルやdependencyを見つけるかのインストラクションである。

Tats-MacBA-4:~ AsamiTasuya$ brew update
Updated 1 tap (homebrew/core).
==> New Formulae
luarocks
==> Updated Formulae
gmt@4 lua lua@5.1 php@7.1
Tats-MacBA-4:~ AsamiTasuya$ brew update
Already up-to-date.

brew upgradeはインストールされたソフトウェアのアップデートだ。
Imagemagickを最新のものにアップデートしたければ、brew upgrade imagemagick とコマンド入力するだけでいい。

インストールされているすべてのformulaeをアップグレードするなら、brew upgrade とコマンド入力する。これは自動的に全ての”Cellar”をチェックし、新しいバージョンに置き換える。

imagemegickのformulaをアンインストールしたいなら brew unistall imagemagick とコマンド入力すればいい。

Jose Gonzales’ PHP-related brew repository は、PHPをHomebrewでインストールすることを可能とするので、PHP postの複雑さを必要としない。

他には brew tap というコマンドもある。brew tap josegonzalez/homebrew-phpとコマンドする。 “opens a tap” というコマンドで、Homebrewが他のformulaeのレポジトリを読む。これはインストールできるソフトゥエアの幅を広げる。

【わからなかったこと】

なし

【感想】

このようなソフトが存在することを知らなかった。また今まで存在してほしいと思うこともなかった。

--

--

Tatsuya Asami
Tatsuya Asami

Written by Tatsuya Asami

Front end engineer. React, TypeScript, Three.js

Responses (1)