渋谷ほととぎす通信

Unity・ゲーム開発 技術で一生食べていく情報発信

恥ずかしくて聞けないbrew caskが超絶便利だったこと

f:id:esakun:20210328204657p:plain

Macユーザーのみなさま
HomeBrewを使っていますでしょうか?

Macのパッケージインストールには欠かせない存在です。

$ brew install hogehoge

普段何気なく使っているHomeBrewですが、

$ brew cask install fugafuga

と実行していたことも。

「はて?cask?」

そもそもcaskってなんなの?という疑問から始まりました。 調べてみると超絶便利でした。

本記事のメリット

  • HomeBrew-Caskの便利さを知る
  • アプリケーション管理がシンプル化

HomeBrew-Caskとは?

ちなみに上記のcaskとは、HomeBrew-Caskのことで、HomeBrewの拡張機能です。

$ brew install hogehoge

とインストールすると、

/usr/local/Cellar/配下に実態がインストールされ、/usr/local/bin/にシンボリックリンクが張られます。

$ brew cask install hogehoge

とすると、/Applications/配下にインストールされます。

今まで、gitやffmpegとかコマンドで叩く系のアプリケーションしか出来ないと思っていましたが、caskを使用すると Visual StudioとかGoogle ChromeなどのGUIアプリもコマンドラインからインストールすることができるようになります。

どのアプリがbrew caskでインストールできるのか?

次のコマンドで調べることが出来ます。

$ brew search

インストールできるアプリケーションはかなり多く対応しています。 ここでは触れませんが、なければ追加可能です。

他のサイトでよく紹介されている、brew cask searchだと

Calling brew cask search is disabled! Use brew search instead.

brew cask searchではなくbrew searchを使えというエラーです。

ところがbrew searchをそのまま使うと表示されるアプリが多すぎて見づらいです。
そこでbrew serach googleという風に絞り込みます。

==> Formulae
google-authenticator-libpam              google-sparsehash
google-benchmark                         google-sql-tool
google-go ✔                              googler
google-java-format

==> Casks
google-adwords-editor
google-backup-and-sync
google-chat
google-chrome ✔
google-chrome-beta
google-chrome-canary
google-chrome-dev
google-cloud-sdk
google-drive-file-stream
google-earth-pro
google-earth-web-plugin
google-featured-photos
google-hangouts
google-japanese-ime ✔
google-japanese-ime-dev
google-nik-collection
google-notifier
google-photos-backup-and-sync
google-trends
google-web-designer
googleappengine
marshallofsound-google-play-music-player
moefe-google-translate

このような形で、FormulaとCaskを分けて検索結果を表示してくれます。

Caskでインストールしたリスト表示

ここで少し余談です。

$ brew cask list

👆を実行するcaskでインストールしたアプリのリストが出力されて便利です。

masが便利

/Applicationsフォルダ内には、インストーラからインストールしたものの他にAppStoreからインストールしたものがあります。caskは前者には対応できますが後者は出来ません。そこでmasを使います。

$ brew install mas

でインストールできるmas。この子は、AppStoreから1度インストールしたアプリをコマンドラインからインストールすることが出来ます。

各アプリにはIDが割り振られており、

$ mas install ID

でインストールすることが出来ます。

割り振られたIDの調べ方ですが、

$ brew bundle dump

と実行するとBrewfileというファイルを出力してくれて、以下のように、現在インストールされているアプリとIDを出力してくれます。
※それ以外にもbrew、caskでインストールされたものも出力されます

mas "Day One", id: 1055511498
mas "DrCleanerPro", id: 1037994372
mas "GIPHY CAPTURE", id: 668208984
mas "Keynote", id: 409183694
mas "Xcode", id: 497799835

Brewfileを使って自動化

さきほど登場したBrewfile。
このファイルを使ってインストールの自動化をすることが可能です。

$ brew bundle

と実行すると記述されているアプリケーションを順番にインストールしてくれます。

Brewfile

# brew tapの自動化
tap "homebrew/bundle"

# ansibleのインストール
brew "ansible"

# alfredのインストール
cask "alfred"

# dayonをAppStoreからインストール
mas "Day One", id: 1055511498

みたいな感じでBrewfileに記述し、Brewfileが存在する場所に移動してbrew bundleと実行するだけです。

すでにインストーラなどでインストールした同名のアプリが存在するとインストールはされません。

Brewfileをちゃんと作ることで、macのお引越しをしたとしても低負荷で引っ越しできる気がします。

設定ファイルも保存する

ググるといろいろ出てきますが、mackupというアプリがすごくて、各アプリの設定ファイルをDropboxなどにコピーし、コピー元にシンボリックリンクを貼るということをしてくれます。

$ brew install mackup

とするだけです。

$ brew install restore

とすると、保存先(Dropboxとか)から設定ファイルの場所にシンボリックリンクが張られます。

ただし、すべてのアプリケーションに対応しているわけではないので注意が必要そうです。

~/.mackup.cfgファイルを作って以下のように書くと、指定したアプリの設定ファイルは無視され、バックアップされません。

[applications_to_ignore]
SourceTree
Hogehoge
Fugafuga

各環境で開くソースが違うことが想定されているのでブックマークを保存してもしょうがないため、SourceTreeを無視リストに入れています。

最後に

下記の参考サイトのように、時間作ってリストアしてmacをキレイな状態にしたいなと思いました。

環境

  • Homebrew 1.8.4
  • Homebrew/homebrew-core (git revision e7e9d; last commit 2018-11-26)
  • Homebrew/homebrew-cask (git revision 6bb75; last commit 2018-11-27)
  • macOS High Sierra 10.13.6

参考