関連記事はこちら
【2020年度版第2弾】新しい Mac を手に入れたらやること一式【アプリケーション編】
【2020年度版第4弾】新しい Mac を手に入れたらやること一式【ターミナル編・主に Homebrew の巻】
【2020年度版第5弾】新しい Mac を手に入れたらやること一式【続ターミナル編・Homebrew と Homebrew-cask の巻】
さて、いよいよ設定シリーズの本丸に差し掛かってまいりました(笑
このブログで Homebrew について書いたのはほぼ2年前なのだが、いまだにその記事にはそこそこのアクセスがある。
やっぱりみんな Homebrew のインストールとか使い方は気になるのね…。
以前の記事を読んでくださった方はおわかりかと思うが、(その記事だけではないけれど)あれこれ順番が前後してしまってわかりにくいものになってしまっていたのではないかと思う。
僕も Mac の設定を進めながら、ブログを書きながら、あれこれ探しながらやっていたので随分遠回りをしたところもあったと思う。
ということで、今回は(できるだけ)最短距離で進めるようにしたい。
そもそも Homebrew ってなに?
Web 関連の仕事をしているのならば馴染み深いと思うが、Homebrew は Mac のアプリケーションを管理するパッケージ管理システム(パッケージマネージャー)だ。例えば node.js だったら npm 、PHP だったら composer 、Mac なら Homebrew 、といった具合だ(結局 Web 関連の仕事でもしていないと伝わらない例だが、きっとこの記事を読んでいるような人はそういう仕事の人だろう)。
パッケージ管理システム(パッケージマネージャー)
先ほど例示したように、最近のプログラム言語はどれもパッケージ管理システム(パッケージマネージャー)が用意されている。
それぞれの言語で書かれたアプリケーション(パッケージ)は、その構造が複雑になるに従ってそれを構成するプログラムが数多くのライブラリに依存するようになってきていて、その依存関係を含めて管理できるようにするために利用するのがパッケージ管理システムだと言える。
ここではそのしくみを詳しく説明することはしない(というか僕も仕組みに詳しいわけではないし、仕組みを知らなくても充分便利に利用できる)が、Homebrew の役目を簡単に説明するなら『Mac 用のアプリケーションのインストールやアップデートを一元管理するツール』となる。
コマンドラインからの操作になるが、頻繁に使うコマンドは数種類なので覚えるのも苦ではないし、なによりコマンドひとつで一括管理できるメリットはとても大きい。
前述したように、Mac のアプリケーションに限らずほとんどの「アプリケーション」と呼ばれるプログラムはたくさんの小さなファイルやライブラリの集合体なので、そういった依存元のライブラリなどのレベルでファイルを管理しようというものだ。
そのプログラムの集合体という意味で「パッケージ」と呼ばれるのではないかと思う。違うかもしれない←
ちなみに、Homebrew ではそういったパッケージのことを「フォーミュラ(formula)」と呼んでいる。なんかかっこいい(笑
Homebrew の大きなメリットはもうひとつあって、
- 例えば Git や MySQL のような(もともとは)コマンドラインから操作する「プログラム(パッケージ)」
- GUI で操作可能な、いわゆる「アプリケーション」
- Apple の AppStore からインストールする「アプリケーション」
のすべてを Homebrew で一括して管理できることだ。例えば Mac に Git や MySQL をインストールすると /usr/local
フォルダ以下にインストールされるが、いわゆる「アプリケーション」はご存じのようにアプリケーションフォルダにインストールされる。細かく説明するとそれぞれを管理するコマンドは各々若干違うのだが、こういった Mac 上で扱いが少々違うアプリケーション(パッケージ)を特段意識することなく Homebrew だけですべての管理がまとめてできるのをメリットと言わずしてなんだというのだ(笑
実は Homebrew を利用するメリットはまだあるのだが、それは後述する。なんて有能なの Homebrew …
とにかく真っ先にやっておくことひとつ
Homebrew をインストールして早くアプリケーションのインストールに進みたいところなのだが、その前にひとつだけなにはなくともやっておくことがある。
この記事でも同様の手順を踏んだのだが、まず最初に必要なのは Xcode のインストール。Xcode がインストールされていないと Homebrew をインストールできないので、まずはここから。
ただし、前回は大きく遠回りをしたので(笑)、今回はコマンドひとつだけで。
$ xcode-select --install
これで Xcode がインストールできた。以前は余計なことをして遠回りしちゃってたのね…。今回は途中ちょっとビビったけどただ待ってるだけでよかった(笑
ではいよいよ Homebrew をインストールしよう
ここからの手順は以前の記事とほとんど変わらないので、詳しい解説はそちらを参照していただくとしてここでは粛々とコマンドだけ入力していく(笑
ちなみに
「ホームブリュー」と読む人もいるが、「ホームブルー」のほうが正式な発音により近い。
Homebrew (パッケージ管理システム) – Wikipedia
これ豆な(2回め
この記事の最初から何度も繰り返し出てきているが、Homebrew のサイトはこちら。
以前の記事でも書いていることだが、Homebrew をインストールする際はコマンドを一行入力するだけで、そのコマンドは必ず公式サイトのページからコピーしてくることを強くお勧めしたい。どこかのブログ記事に載っていたコマンドだと、いつの間にかコマンドが変わってしまっていてうまくダウンロードできない、なんてことも起こりうるからだ。まぁそうそうないとは思うけど…。
今回久しぶりにアクセスしてみたら、コマンドをコピーするボタンがついていた(笑
ここのコマンドはみんながコピーするところなので、これはいいね!
手順は以下のとおり。特に戸惑うようなところはない…はず…
インストールの確認…ありゃ?
zsh: command not found: brew
『 brew
ってコマンド入力されたけど、そんなのないよ』って言われた…?
いまインストールしたじゃん!!
で、よく見たら
以前やったときはこれだけでインストールが完了していたのだが、今回はどうも改めて Path を通さないといけないようだ…。このあたりは「ちゃんとコメント読め」ってことですかね(笑
前のときは自動で Path が記載されてたのかな…?
特にこの2つのコマンドのうち最初のひとつはそれぞれの環境によって Path が異なるので、必ずご自分の環境で表示されたコマンドをコピペして入力するようにしよう。
このあたりは Mac の OS や Homebrew 本体のアップデートによって手順が変わる可能性がある、ということかな。コメントはよく読みましょう(笑
Brewfile …だと…?
前回の Homebrew インストールの記事を書いたあと、長岡のイケメンが「こんな記事書いたよ」と教えてくれた。
ん…?Brewfile…?
$ brew bundle dump
と入力するとインストールコマンド付きのファイルが書き出せる、だと…?
そんな便利なものがあったのか…!
そして、Brewfile に記述してあるプログラムをインストールするときは、Brewfile があるフォルダへ移動して
$ brew bundle
するだけ!!
この記事の最初にも書いたが、Homebrew は Mac にインストールするプログラム(あるいはアプリケーション)を一括して管理するツール。
なので、特に今回のように「環境を移行する」ときに Brewfile(つまりはその Mac にプログラムやアプリケーションをインストールするリスト)でインストールするプログラム群を一括して管理できるのは非常にありがたい。こんなところにも Homebrew を使うメリットがある、ということだ。
実際にいまそういう運用をしているわけではないけれど、例えば会社のみんなが Mac を使って開発しているような場合、この Brewfile を共有して
「Homebrew をインストールしたらコマンドひとつで必要なプログラムがインストールされるからね」
って伝えるだけでいいなんて…!
もちろんそれぞれのアプリケーションの設定は別途やらないとだし、そこが面倒(笑)なところではあるけれど、それを差し引いてもひとつずつ「あれ入れて、これ入れて」をやらずに済むだけでも結構な省力化にもなるし、特に新人さんやプログラムが苦手な人でもとりあえずアプリケーションのインストールまでは待ってるだけで完了するなら、こんなにラクなことはない。
いやー、他の人が使っている Brewfile、参考になるわ…。
そして bundle
コマンドと Brewfileの公式ドキュメントはこちら。
Mac App Store のアプリケーションも一緒に管理する
- brew コマンド:プログラム
- cask コマンド:アプリケーション
を使ってインストールしていたが、Homebrew では Mac App Store からインストールするアプリケーションも管理できる。もうほんと無敵やな…
これは別途 mas
というプログラムを追加することで実現できるので、
$ brew install mas
と入力して mas
というプログラムをインストールする必要がある。
長岡のイケメンが共有してくれてる Brewfile にあるように、これも一緒に記述しておけば同時にインストールされる。
いやー、便利な世の中だわ…(笑
ちなみに、インストールしたプログラムやアプリケーションのリストをただ画面上で表示したい場合は以下のコマンドを入力。
$ brew list
もう一つのコマンド 「tap」
この「Mac App Store からインストールするアプリケーションも管理できるようにするコマンド mas
」を追加すると
- brew コマンド:プログラム
- cask コマンド:アプリケーション
- mas コマンド:Mac App Store からインストールするアプリケーション
となるのだが、もうひとつ重要なコマンドがある。
それが tap
コマンドだ。
この tap
コマンドは、Homebrew の公式サイトに掲載されている formula『以外の formula』を追加できるサブコマンドだ。
これは先ほどの mas
コマンドとは違い最初から Homebrew にインストールされている。その使い方は
$ brew tap {{userName}}/{{repository名( homebrew- 以下の部分)}}
のようになる。このコマンドで GitHub に公開されているリポジトリから直接 formula がインストールできる、というものだ。
Homebrew の外部からもインストールできちゃうとか、これまたスゴいな…(笑
tap
コマンドがすぐ使えるので、早速 tap
コマンド経由でインストールしておきたい formula を確認しよう。
tap "homebrew/bundle"
tap "homebrew/core"
tap "homebrew/services"
いま時点で考えている tap
コマンドからのインストールは上記3つ。
ただし、"homebrew/core"
は Homebrew 本体のことなので、実際には "homebrew/bundle"
と "homebrew/services"
の2つになりそうだ。
もともと使っていた Mac から出力した Brewfile にはもうひとつ、大活躍の "homebrew/cask"
があったのだが、これはいま現在本体をインストールすると併せてインストールされるので良しとする。
"homebrew/bundle"
と "homebrew/services"
の詳しいコマンドの使い方はこちらとこちらにそれぞれ(英語だけれど) README.md があるので、そちらを参照いただくことにしよう。
今どきは DeepL とかあるからドキュメントが英語でもほんとに困らなくなったよね…。こういった技術的な内容だとたまに変な和訳になることはあるけど、原文と照らし合わせればだいたいのことは想像がつく。
『とにかくまずは公式ドキュメント読め』って言われて泣きながら英語の長文を読んでいたのももはや過去の話かな(笑
BrewFile を用意
で、今回用意した Brewfile はこちら(3分クッキング方式
これは、いままで使っていた古い Mac でまず $ brew bundle dump
し、長岡のイケメンの Brewfile を参考にしつつ新しい自分の環境に合わせて作成したものだ。
大体のところは以前にインストールしていたものと変わらないと思うが、たぶんこんな感じ(笑)。実際にはここには記載されていない Homebrew 経由でインストールできないアプリケーションもあったりするのだが、そのへんはご自身の環境によってそれぞれ違うと思うので調べていただきたい。
もちろん、公式サイトでは brew
コマンドでインストールできるパッケージの一覧や cask
コマンドでインストールできるアプリケーションの一覧が用意されているので、こちらで検索してみるといいだろう。
tap "homebrew/bundle"
tap "homebrew/core"
tap "homebrew/services"
brew "mas"
brew "brotli"
brew "libpng"
brew "openssl@1.1"
brew "autoconf"
brew "automake"
brew "icu4c"
brew "jpeg"
brew "libpng"
brew "libiconv"
brew "libssh2"
brew "libzip"
brew "libiconv"
brew "libxml2"
brew "libzip"
brew "pkg-config"
brew "mcrypt"
brew "mysql@5.7"
brew "putty"
brew "re2c"
brew "tree"
brew "zlib"
brew "bison"
brew "bison@2.7"
brew "php"
brew "php@7.4"
brew "composer"
brew "volta"
brew "git"
brew "git-ftp"
brew "php-code-sniffer"
brew "wp-cli"
brew "bzip2"
brew "cmake"
brew "curl"
brew "jq"
brew "subversion"
brew "vim"
brew "wget"
# cask
## Browsers
cask "firefox"
cask "google-chrome"
cask "vivaldi"
## Work use apps
cask "gas-mask" # HOSTS editor
cask "google-japanese-ime" # IME
cask "imageoptim" # Image optimizer
cask "iterm2" # Enhanced terminal
cask "joplin" # Markdown note app
cask "local" # Local env for WordPress
cask "macdown" # Markdown editor
cask "sequel-ace" # GUI MySQL client
cask "sourcetree" # GUI Git client
cask "subethaedit" # Text editor
cask "sublime-text" # Text editor
cask "the-unarchiver" # Enhanced extract file tool
cask "transmit" # GUI ftp app
cask "visual-studio-code" # Text editor
## Enhance quicklook
cask "qlcolorcode" # Syntax highlight
cask "qlimagesize" # Display image sizes
cask "qlmarkdown" # Quicklook markdown
cask "qlprettypatch" # Quicklook patch files
cask "qlstephen" # Quicklook plane text
cask "quicklook-csv" # Quicklook csv
cask "quicklook-json" # Quicklook json
cask "suspicious-package" # Deploy installer packages
cask "webpquicklook" # Quicklook webP
## apps for work env
cask "chatwork" # Chat tool
cask "deepl" # Online translation tool
cask "discord" # Online chat tool
cask "docker" # Virtual development environment
cask "dropbox" # Cloud storage
cask "gather" # Virtual interaction space
cask "krisp" # Noise reduction
cask "microsoft-teams" # Online meeting tool
cask "miro" # Online whiteboard tool
cask "notion" # Customizable workspace
cask "slack" # Online chat tool
cask "zoom" # Online meeting tool
## other creative apps
cask "alfred" # Enhance search, spotlight
cask "adobe-creative-cloud" # Design tools
cask "bettertouchtool" # Enhance operation
cask "figma" # Online collaborate design tool
cask "handbrake" # Convert video formats
cask "karabiner-elements" # Keyboard customizer
cask "keyboard-maestro" # Create macros or short cuts
cask "keycastr" # Display key entry
cask "licecap" # Desktop capture to GIF animation
cask "libreoffice" # Office compatible
cask "loopback" # Audio routing tool
cask "mousepose" # Tool for presentation
cask "obs" # Online broadcast tool
cask "poedit" # Translation file editor
## utility apps
cask "appcleaner" # Utility for delete apps
cask "authy" # 2-factor authentication app
cask "keyboardcleantool" # Utility for keyboard cleanings
cask "1password" # Password manager
cask "messenger" # Messenger
cask "spotify" # Audio streaming
cask "wifi-explorer" # Wifi utility
# Mac app store
mas "Kaleidoscope", id:587512244 # Enhanced GUI diff tool
mas "Keynote", id:409183694
mas "Boxy SVG", id:611658502 # GUI SVG editor
mas "Kindle", id:405399194 # Kindle app
mas "GarageBand", id:682658836
mas "Contrast", id:1254981365 # Check screen contrast
mas "Pixel Winch", id:735066709 # Screen measurement
mas "WebPonize", id:1526039365 # Convert webP and another image formats each other
mas "Paste", id:967805235 # Store copy history
mas "Xcode", id:497799835 # Mac dev tool
mas "Numbers", id:409203825
mas "Pages", id:409201541
mas "iMovie", id:408981434
mas "Gapplin", id:768053424 # SVG Viewer
mas "Yoink", id:457622435 # Enhanced copy and paste
mas "Svgsus", id:1106867065 # SVG organnization tool
いや長すぎるやろ(笑
この Brewfile はコメントを入れたりちょっと見やすく空行を追加したりしているが、実際に書き出した最新の BrewFile はこちらにある。
いよいよ Brewfile からインストール!!
Brewfile が用意できたので早速インストールしよう。
今回は Brewfile をユーザーのホームに置いたので、ターミナルで自分のいる場所が ~
になっていればOK。
ヤバいポップアップが表示されたので(笑)、ここはいったん「あとで行う」で。
引き続きインストールが進んでいく。
エラーでインストールが止まってしまった場合、そこをスキップして先に進むのではなくコマンドが終了してしまうようだ。
ここまでのパッケージ(プログラム)は先ほどのポップアップのところ以外は問題なくインストールできていたので、Brewfile を編集して改めて読み込ませることにした。
具体的には
mas "Kaleidoscope", id:587512244
までの行はインストール済みなので削除し、Kaleidoscope
は cask
経由でもインストールできるのでそちらを使うことにする。
cask kaleidoscope
このKaleidoscope
以降のまだインストールされてアプリケーションのところはそのままだ。
システム機能拡張を有効にするには、復旧用環境でセキュリティ設定を変更してください。
以前はこんな手続きは必要なかったんだけど、いろいろセキュリティ設定が厳しくなった影響かな?
ここからは復旧用環境なのでスクリーンショットが撮れない。なので簡単ではあるが箇条書きで。(スマホで画面を撮っておけばよかったかな
- 復旧用環境が起動するまで電源ボタンを長押ししておく
- 復旧用環境が起動したら「オプション」を選択する
- オプション画面が表示されたらメニューの「ユーティリティ」から「起動セキュリティユーティリティ」を選択する
- 「セキュリティポリシー」画面が表示されるので、「低セキュリティ」(という表現もどうかと思うが)を選び、「確認済みの〜」の項目をチェックする
- Mac を再起動する
流れはこのようなものだ。Mac の設定をしたことがある人であれば迷うことはないと思うが、設定に慣れていない場合は誰かと一緒にやれるといいかも。
これでようやくひととおりのプログラム、アプリケーションのインストールが完了した。
改めて、いま現在の Brewfile はこちら。
これまでは、古い環境と同じアプリケーションが使いたくても結局それぞれのサイトに行ってひとつずつポチポチダウンロードしてインストール…としていたのだが、この Brewfile を使えば本当にラク!!途中で止まってしまう可能性がないわけではないが、基本的にはコマンドひとつ入力したらあとは待っていればいいのだ。
こんなに簡単になったのに僕はなんでいつまでセットアップが終わらないんでしょう?(おい
注意事項
ここでの大前提ではあるのだが、これはあくまでも「僕の環境」での作業内容なのでこれと同様にならない可能性は充分にあるし、ここでインストールしたアプリケーションの利用を推奨するものでもない。繰り返しになるが、これは「僕の環境での作業例」だ。
特に途中で出てきた「セキュリティ設定の変更」については、個人や会社でのポリシーによっては変更しない・できないという選択ももちろんあるだろう。
こちらを参考にしていただけるのはとてもありがたいが、インストールの内容については十分吟味して行っていただきたい。
Brewfile をどう管理する?
ところで、Brewfile を使うのは基本的に環境を移行するときくらいなので、普段はその扱いを気にすることはない。
自分で使うだけならば、次回環境の移行をするときにまた「その時点の Brewfile」を書き出せばいいだけだ。
ただ、それを共有したりとなると「最新の状態と同期させておきたい」となる。
世の中にはちゃんとそういうところに気がつく人がいるもので(笑)、大阪のイケメンがこんな記事を書いてた。さすがだ(笑
ここで用意されたシェルスクリプトを走らせると、Gist にある Brewfile を上書き保存してくれる、というもの。Homebrew 経由で何かしらのプログラムを追加したら、シェルスクリプトをコマンドで動かせばいい。
自分の環境を基準に、という前提にはなるけれど、この Brewfile を共有しておけば手軽に複数人で環境を揃えられることになる。
うわ、もう更に便利じゃないの…。
Homebrew を使うメリットはまだある
ここまでは Homebrew でのプログラムのインストールについて解説してきたが、Homebrew でプログラムを一括管理するメリットはもちろんこれだけではない。
当然といえば当然なのだが、アップデートや削除も Homebrew 経由でできるのだ。
こういったアプリケーションやプログラムを普段からあれこれ仕事で使う、といったいわゆる「エンジニア層」の仕事でないのならばそこまでメリットを感じることもないかもしれないが、アプリケーションはさておき、実際のところいわゆる「プログラム」の類はかなり頻繁にアップデートされることが多いのだ。
これは開発が活発だったり新しい技術に対応するためだったりするのだが、これをいちいちひとつずつ確認してアップデートしていく、なんてとても無理…。
どこかのタイミングで「あれ、今の環境もしかしてだいぶ古い?」なんて気づかされることになるかも。
それが、Homebrew ならばアップデートもコマンドひとつで一括でできる。削除もコマンドひとつ。
こちらの記事も参照していただきたいが、基本的には定期的に
$ brew upgrade
とだけ入力すれば、Homebrew 経由でインストールしたプログラム、アプリケーションが一括でアップデートでき、一定期間が過ぎた古いバージョンのプログラムは削除される。
もう使わなくなったプログラムを削除するなら以下のコマンド。
$ brew uninstall {{formula}}
こういうコマンドでそれぞれ管理できるのってホントにラクで便利。
余談だが、普段のメンテナンスとしては以下の2つのコマンド
$ brew upgrade
$ brew doctor
をセットで使っておけばいいだろう。ここは以前と変わっていない。
これも気づいたらちょっと時間に余裕があるときにやっておく、というくらいなので本当に管理に気を遣わずに済む。
その他のコマンドについては rriver の Ryo さんがまとめてくださっている記事が参考になるだろう。
まとめ
あーあーまた結局長い記事になったもんだよ…。書きたいんだということで諦めてください(笑
大筋はこの記事やこの記事を参照していただければそれほど大きな変更はないので、ここでは主に Homebrew のインストールと Brewfile について解説した。
アプリケーション自体の使い方の解説を書き出すともう一生終わる気がしないので(笑)、そこの概要については以前の記事を見てみてほしい。
さーて次からはいよいよ本丸の「アプリケーションの設定」ですよ!(まだ本丸手前だったんかい笑