Homebrewって何となくこうだと思う


Homebrewとはざっくり・・・

よくソフトウェアのパッケージ管理システムとか言われるし、
公式サイトにもmacOS用パッケージマネージャーと紹介されるが、パッケージ管理とかマネージャーってつまりどういうこと?
って私は初めて使う時に思いましたので、Mac初めて買って「開発やってみるぞ!」みたいな境地の人の手助けになれば幸いです。
本記事はパッケージ管理システムを使うのはHomebrewが初めてという方に向けています。
でもざっくりとか記載していませんので、悪しからず。

先に結論言っておくと

Macで開発言語や開発を手助けしてくれる機能などをインストールしたり、管理するために使うもの

です

役割

役割としては↓と似たようなものです。

iphone使っていたらApp storeからアプリをダウンロードするし、
android使っていたらgoogle playからアプリをダウンロードし、
それぞれ今までにインストールした一覧も見れたりします。

MacのPCで色々なアプリや言語、ライブラリをインストールしたり、一覧を確認したりするものです。

「いやMacにもApp storeあるじゃん。じゃあそれでよくない?違いは何!?」と言われそうですが、Homebrewは先に述べた通り、
(大体)開発に必要なプログラミング言語だったり機能をインストール・管理するために使うため、ゲームだったり、音楽プレイヤーなどをインストールすることはありません。

※厳密に言ってしまえば、例えば一般的によく使われているアマゾンのkindleをHomebrewでインストールできますし、「この領域」と言えるほど明確な境界線は存在しないと思います。

他には、管理しやすくするという役割もあります。
インストールする対象のライブラリなどには依存関係と呼ばれるものがあり、依存関係は「Aを使うにはBも必要だよ。だからAを使用するにはAとB両方インストールしないと使えないよ」という関係性のものです。
例えばExcelやWordにPDF化する機能がありますが、PDF機能使いたかったら自分でPDF専用ソフト用意してExcelやWordそれぞれに自分で設定してねみたいに言われたら中々面倒ですよね?
ExcelやWordのいいところとしてPDF文書もポチッと1クリックで済ませられ、ソフト自体がパッケージ化されているという便利さもあるので、それができないとなるとPDF文書作成できないユーザーも必ず出てきます。
そういった依存関係の管理をHomebrewが代理でまとめてくれるという役割もあります。

他のパッケージ管理システム

パッケージ管理システムは他にもあり、Linux用にyumaptなどがあり、Mac用だとHomebrewである。
私はあるライブラリをインストールしようとして参考サイトでyum install ~~と書いてあったのをそのままMacのターミナルに打ち込んでエラーが出て「??」と打ちひしがれていました。。。

brewbrew cask

  • brewはコマンド(画面なしでテキストでぽちぽち操作する)だったり、開発言語や機能の方のパッケージ管理
  • brew caskは主に画面で操作するソフトのパッケージ管理

例としてbrewコマンドでrubyを検索すると
※↓の例は右にスライドできます

$ brew search ruby
==> Formulae
chruby                                  mruby                                   ruby-build                              [email protected]
chruby-fish                             mruby-cli                               ruby-completion                         rubyfmt
imessage-ruby                           rbenv-bundler-ruby-version              ruby-install                            homebrew/portable-ruby/portable-ruby
jruby                                   ruby                                    [email protected]

==> Casks
madruby                                              rubymine                                             rubymotion

==> Formulaeの欄にruby言語がありますが、==> CasksのところにはrubymineというGUIエディタがあります。
本サイトのQiitaもGoogle ChromeFire Foxなどで見ている人が多いかと思いますが、brew caskでインストール可能です。
brewは開発用に扱うもので大抵画面で扱わないもの、brew caskは一般的に使われているソフトなどを扱うくらいの理解でとりあえず使うことはできるかなと思います。

繰り返しになりますが、Homebrewの概要をまとめると

  • 何かをインストールする
  • インストール済のものを確認、変更する
  • 依存関係を管理する

と以上の事柄のために使用すると言えます。

注意点

あなたが別記事でHomebrewでインストールする例文があり、うまくいかなかったので、Homebrewを調べていたのであればここで注意点です。

Homebrewは上述したようにインストールや管理の側面から便利なシステムですが、Homebrewでなければインストールできないとか依存関係を管理できないということは基本的にありません。
どんな言語やライブラリでもHomebrew以外にインストールする手段はあるということは念頭においておいてください。
Homebrewで扱った方がインストールしやすかったり、管理しやすいというだけです。

よく使うコマンド

最後に基本的なコマンドです。

インストール
brew install 対象名
アンインストール
brew uninstall 対象名
インストール済の一覧を確認
brew list
brew list --version #バージョン含めて一覧表示
brewで扱える言語や機能やソフトなどを検索
brew search 対象名
詳細を確認(インストール済か否か、最新バージョン、依存関係など)
brew info 対象名
インストール済で更新がある対象を確認
brew outdated
Homebrew自身とパッケージの更新
brew upgrade
旧バージョンで使用しないものを削除
brew cleanup
brew cleanup -n #削除する対象を一覧表示(消去する前にやると○)
問題箇所を確認
brew doctor
依存関係を確認(どの対象に依存しているか)
brew deps 対象名
brew deps --installed --tree # インストール済の依存関係をツリー状で表示
依存関係を確認(どの対象から依存されているか)
brew uses 対象名
依存関係がない対象を表示
brew leaves