こんにちわ、オオバです。

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

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

例:HomeBrewの仕様例
# ffmpegのインストール
$ brew install ffmpeg  

# ffmpegのアンインストール
$ brew uninstall ffmpeg  

# HomeBrewでインストールしたものをリストアップ
$ brew list  

このようにMacのパッケージ(CUIアプリ)を
簡単に管理できます。

$ brew install --cask alfred  

と実行していたこともありませんか?

「はて?cask?

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

本記事のメリット

Macのアプリ管理を効率化したい人に読んでもらいたいです。

📝 目次

HomeBrew-Caskとは?

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

通常のbrew install

$ brew install ffmpeg  

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

brew install --cask を使う

$ brew install --cask alfred  

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

今まで、gitffmpegといった、
コマンド実行アプリ(CUI)しか対応していないと思っていました。

HomeBrew-Caskを使用すると Visual StudioGoogle Chromeといった
GUIアプリもコマンドラインからインストールすることができるようになります。

HomeBrew-Caskのインストール

HomeBrew-CaskはあくまでHomeBrewの拡張機能です。
※事前にHomeBrewがインストールされている必要があります

【まだの方向け】HomeBrewのインストールコマンド
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"  

HomeBrewでHomeBrew-Caskをインストールします。

HomeBrew-Caskのインストール
$ brew install cask  

これでcaskが使えるようになりました。

2つのcaskでインストールできるアプリの調べ方

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

  1. casksコマンド
  2. searchコマンド

casksでZoomをCaskでインストールできるか確認

brew casksのリストから探すのは大変なので
grepを使います。

「grepはセットで使う」を覚えておきましょう。

$ brew casks | grep zoom  

casksのリストからzoomキーワードに
ヒットするものをリストアップします。

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

このようにZoomがインストール可能であることが分かります。

searchでZoomをCaskでインストールできるか確認

$ brew search zoom  

searchコマンドは、
CUIアプリGUIアプリどちらも検索対象です。

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

↑このようにZoomは見つかりました。

2種紹介しましたが、
searchだけ覚えとけば大丈夫です。

CUIか、GUIかわからない場合も
serachコマンドで対応できますしね。

例えば「google」で検索します。

$ brew search 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(CUIアプリ)と
Cask(GUIアプリ)を分けて検索結果を表示してくれます。

caskでインストールしたリスト表示方法

caskでインストールしたものを確認したいことがあります。
そんな時はlistコマンドを使ってください。

$ brew list --cask  

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

AppStoreからインストールしたものはmasを使う

すこし話がずれてきますが、
/Applicationsフォルダ内には、
AppStoreからインストールしたものがあります。

HomeBrew-CaskはAppStoreアプリには対応していません。

そこでmasの登場です。

$ brew install mas  

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

各アプリにはIDが割り振られています。

$ mas install ID  

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

AppStoreで割り振られた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をキレイな状態にしたいなと思いました。

👉 オススメ記事

2021秋 Asset Refreshセール
100以上のアセットがなんと50%OFF!!オオバもいくつか買いました!
期間 : 10月2日午後3時59分まで

👩‍💻 検証環境

🙏 参考サイト