先述の通り、新年を迎えたことをきっかけに Mac を初期化しました。 面倒なのは、使っているソフトウェアのインストールなのですが、皆さんと同様 homebrew を使っています。
そういえばと思い立ったのですが、この homebrew で各種 CUI アプリケーションとともに AppStore で配布されているソフトウェア(例えば LINE や Evernote など) も一気にインストールできることはイマイチ知られていません。というわけで、本エントリではそのあたりをご紹介します。
GUI アプリケーションのインストール
野良アプリのインストール (cask)
Mac で AppStore 以外で配布されている、いわゆる野良 GUI アプリケーションをインストールする場合、インストーラをダウンロードしてダブルクリック、出てきたアプリのアイコンを Application
フォルダにドラッグ&ドロップというのがよくあるインストールだと思います。
PCを換装したときにこれをやるのはかなりメンドい。
homebrew はこれを CLI で行えるサブコマンド brew cask
を持っています。例えば、Google Chrome をインストールする場合、
$ brew cask install google-chrome
を実行すれば、勝手に Chrome がダウンロードされ、Applications
フォルダに移動してくれます。便利。
AppStore 配布のアプリケーションのインストール (mas)
世の中には AppStore のみで配布されているアプリケーションも存在します。LINE なんかが代表例ですね。 これを CLI からインストールするためには、mas を使います。
例えば LINE をインストールする場合は、最初に LINE の ID を取得し、その ID に対して mas install
サブコマンドを発行すればインストールが可能です。
$ mas search LINE | head -1 539883307 LINE (5.21.2) $ mas install 539883307
いちいちコマンド発行するのも面倒 (Brewfile)
ただ、自分が通常 PC で使用しているソフトウェア全てに対してこれらのコマンドを発行するのも面倒です。
homebrew は、通常の CUI アプリケーションとともに、上記のような野良アプリ、AppStore アプリを Brewfile
と呼ばれるファイルに羅列しておけば統一的にインストールしてくれる brew bundle
コマンドを持っています。
例えば、以下のような内容の Brewfile
を用意しておけば、$ brew bundle install
コマンドで CUI、GUI アプリ関係なく、一気にアプリケーションをインストールできます。 この Brewfile
を Github あたりで管理しておけば、PC を換装したときも怖くありません。
# tools brew 'ansifilter' brew 'coreutils' brew 'curl' brew 'goenv', args: ['HEAD'] # Cask Applications cask '1password' cask 'alfred' cask 'caffeine' # AppStore Applications mas "LINE", id: 539883307 mas "Pocket", id: 568494494
僕自身は、単純な brew bundle install
だと意図せずアップデートもかかるので、--no-upgrade
オプションを付与してインストールだけ行うようにしています。
Brewfile のみでアプリを管理する (brew bundle cleanup --force
)
人類は怠惰なので、Brewfile
に記述することなくソフトウェアのインストールをすることがあります。
これを防ぐために、私はインストール後常に brew bundle cleanup --force
を行うようにスクリプトを組んでいます。
このコマンドが何をしてくれているかというと「Brewfile
に記述されないまま brew 経由でインストールされたソフトウェアを、強制的にアンインストールする」ということをやってくれます。過激ですが便利。