K’s diary

プログラミング、ビジネスや時事ニュース、経営/人事、音楽や映画について書いていきます

Homebrewについて調べてみた

はじめに

Homebrewについて調べたので記録します。

先日書いた「MySQLのエラー」の対処方法として「MySQLのclientlibraryにシンボルリンクの貼り直す作業」が必要になった。そしてclientlibraryファイルを探すうちに、PCの中にMySQLに関連するディレクトリがあちこちに複数存在していることが分かった。

私は「どのファイルが、何の役割を担っているのか?」も理解しないままググったコマンドを実行する恐怖症なので、どのディレクトリのどのファイルがどういう役割で、どう行ったことが書かれているか、、を調べました。

そんな中で、これまであまり意識せずに利用していたHomebrewについても調べる必要が出てきました。MySQLはHomebrewを通じてインストールしていたからです。そんなこんなで、「そもそもHomebrewっていったい何だ?」と疑問に思い調べたので、今回まとめました。

記事の対象者

  • Homebrewを使っているけど良く分からない人

Homebrewとは

Homebrewとは、パッケージ管理を行うソフトウェアです。

プログラムを組む上で、よくある処理については自分で一からプログラムを書かずに、公開されているプログラムの部品があればそれを利用した方が効率的です。そういった便利な部品を集約してひとまとめにしたものをライブラリと言い、そのライブラリの関連ファイル(実行ファイルや設定ファイルなど)をまとめたものをパッケージと呼びます。

Hombrewは、それらのパッケージのインストールやアンインストールを自動化したり、インストールしたパッケージのバージョンや依存関係を一元管理するためのツールです。

なぜHomebrewが必要か

まずパッケージの配布方法には大きく分けて「バイナリ配布」と「ソースコード配布」の2種類があります。

<補足>

  • バイナリ配布

コンパイル(0と1のみで書かれた「機械語」への翻訳)済みのファイルを配布します。利用する側はサクッと導入できて楽なのですが、配布する側はあらゆる環境での動作確認が必要で膨大な労力がかかりますし配布物への責任が伴います。

(未コンパイルの)ソースコードを配布します。利用者は自由にカスタマイズすることも可能ですが、利用者自身でビルド(プログラムへの組み込み)をする必要があり、一定の知識や技術が必要です。 システム環境の多様化や開発コストの問題から、現在は「ソースコード配布」が主流になっています。 しかし、配布されているソースコードを利用者自身がプログラムへ組み込む作業は一定の知識が必要で、「誰でも簡単にできる」という訳にはいきません。

それらを、なんと自動で行なってくれるツールがHomebrewです。

他にもパッケージのアンインストールや、インストールしたパッケージのバージョン管理、パッケージの有効/無効の切り替えなど、使いこなせれば何かと便利です。

Homebrewの仕組みの全体像

まずは、Homebrewの用語説明です。

Homebrewとは「自家醸造」という意味であり、扱われる用語もビールの自家醸造に例えらて表現されています。

用語 和訳 用語の説明
Hobebrew 自家醸造 自分自身でビルドするよの意
fomula レシピ(調理法) ビルド方法が書かれたスクリプト
keg 熟成タル ビルドの材料(formulaのインストール先)
brew 醸造 ビルドすること
Cellar 貯蔵庫 ビルドしたパッケージ本体の格納場所
bin ビン ビルドしたパッケージへのリンク

ここから分かるように、Homebrewによるパッケージインストールは以下の通りに行われています。

  1. レシピ(formula)の手順(スクリプト)にそって

  2. タルの材料(keg)を使い

  3. パッケージを醸造brew)する。

  4. 醸造したものは貯蔵庫(Cellar)に保存し、

  5. 実際に使う時はビン(bin)で利用する

このように捉えると非常に分かりやすいと思います。

Homebrewの構造

Homebrewをインストールすると、usr/local以下に複数のディレクトリが生成されます。特に重要なのは以下のディレクトリです。

usr/local

├─ Homebrew #Homebrew本体の格納先

├─ Cellar #インストールしたパッケージ本体の格納先

├─ bin #シンボルリンクの保存先

├─ lib #シンボルリンクの保存先

├─ opt #最新版へのシンボルリンク保存先

Homebrew自体も一種のパッケージであり、 Homebrew本体は「Homebrew」ディレクトリに保存されます。

そして、Homebrewを通じてパッケージをインストールすると、そのインストールしたパッケージの本体が「Cellar」というディレクトリに格納されます。

それと同時に、「bin」や「lib」にシンボルリンクのファイルが作成されます。実際にパッケージを利用する際は、このシンボルリンクを通してパッケージ本体にアクセスします。

<補足>

  • シンボリックリンクとは、特定の「ファイル」や「ディレクトリ」の場所を指し示す(それらとリンクしている)別のファイルを作成し、それを通じて本体を参照できるようにする仕組み。Windowsのショートカットのようなもの。

  • Homebrewを通してインストールしたパッケージは、各ディレクトリ内に、パッケージごとの個別のディレクトリが作成されます。

  • ちなみに、Homebrew はすべてGitとRubyで動いています。

インストール方法

  • Homebrewをインストールするのに必要な「コマンド」を使えるようにす流には、Command Line Toolsをインストールが必要です。

ターミナル

$ xcode-select --install

もしくは以下のurlからインストール

https://developer.apple.com/download/more/

1)ID、passの入力

2)ボックスにチェックして「submit」

3)「Download Tools」を選択

4)「See more downloads」を選択

5)「command line」を検索

6)自身のMacに合わせたものをインストール

  • Hombebrewのインストール
$ cd #ホームディレクトリに移動
$ pwd #ホームディレクトリにいることを確認!
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
#インストールの実行

<補足>

  • ruby -e …」の部分はよく変更されるので、実行できないときはHomebrewの公式サイトを確認して下さい。

  • インストールには数分かかります。

  • 途中でpasswordが要求されます。自身のMacのpassです。入力してもターミナルには表示されませんが気にせず入力してね。

  • 「Press RETURN to …」と出たら素直にEnterを押してね。

  • ターミナルで100%と表示されインストールが完了すると自動終了します。

もし「Agreeing to the Xcode・・・」のエラーが出たら・・・

<補足>

もし「Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.」というエラーが出たら、Xcodeのライセンスへの同意が必要です。

  1. Finderのアプリケーションからxcodeを起動

  2. agreeをクリック

  3. もう一度Homebrewをインストールする

最後に、インストールができているか確認しましょう。また必要に応じてアップデートしておく必要があります。併せて実行しましょう。

$ brew -v
$ brew update

また、Macのバージョンが10.11.1以上の場合は、ターミナルから以下のコマンドを実行します。

$ sudo chown -R `whoami`:admin /usr/local/bin

<補足>

Macのバージョンは、ウィンドウ左上のリンゴマーク>「この Mac について」で確認できます。

参考ページ

Homebrew公式

最後に

今回は、Homebrewの基礎知識からインストールの仕方までをまとめました。具体的な使い方についてもまとめていき、できたものから下の関連ページにリンクを貼って行きますので、そちらも合わせてご覧下さい。

関連ページ

現在はありません