【2020年度版第5弾】新しい Mac を手に入れたらやること一式【続ターミナル編・Homebrew と Homebrew-cask の巻】

ターミナルからのアプリケーションのインストール

さて、延々新しい Mac の設定のブログ記事が続いていて一向に新しい Mac を使えていないのだが、これ、いつ終わりますかね…。

前の記事では主に Homebrew を使って Mac にコマンドのパッケージなどをインストールしていったのだが、この記事ではその続きとして、 HomebrewHomebrew-cask を使ってアプリケーションをインストールしていく。
新しい開発環境を用意するのもラクじゃないよね…。

全然関係ないんだけど、こんな感じでずっと新旧両方の Mac をほぼ毎日触っているが、個人的には新型のパンタグラフキーボードより旧型のシザーキーボードのタッチのほうが好みかな…。打音がパタパタうるさいし、繰り返し壊れるのにはほとほと閉口したけど(笑

ターミナルからのインストール [Homebrew cask 編]

Homebrew をインストールしたらこれは絶対にインストールしなきゃいけないというのが『Homebrew-cask だった』。「だった」というのは、以前は Homebrew をインストールしたら真っ先に Homebrew-cask をインストールしていたのだが、どうやらいまは最初からサブコマンドとしてインストールされているらしい。
いろいろ便利になってるのね…。

Mac 本体の環境は一度設定してしまうとあまり大幅に更新することがなくて(あれ、僕だけ…?)、新しい Mac に乗り換えるときか OS がアップデートされてクリーンインストールするときに見直すくらい。ちょっと放置していると環境構築でのアプリケーションも進化していて時代遅れ感が…。

サブコマンドとして入力できるなら、早速コマンドを入力してみる。

$ brew cask
あれ、怒られた。

「サブコマンドが指定されてないよ( No subcommand given. )」って怒られた…(スクショを撮りそこねた)。が、「マニュアル見てね( See alse "man brew-cask" )」と出てくるから使えるのは間違いない。
というか、今回調べてわかったのだが Homebrew 関連は僕が知っていたころの情報よりもかなりいろいろな部分でアップデート(=変更)されていた。もしここの記述で間違ったものがあればお知らせいただければ幸いだ。

前の記事で『普段の Homebrew のメンテナンスには $ brew upgrade でパッケージの更新ができる』と書いたが、 Homebrew-cask も同様。

#アプリケーションのアップデートの確認
$ brew cask outdated

#アプリケーションのアップデート
$ brew cask upgrade

これで一括してアップデートできる。

じゃあこれは OK 、早速次へ!!

ターミナルからのインストール [iTerm2 編]

先ほど書いた『以前は Homebrew をインストールしたら真っ先に Homebrew-cask をインストールしていた』というのには大きな理由があって、この記事この記事で「Mac でアプリケーションを管理するのにとても便利」と前述したように、 Homebrew-cask がインストールされていると『ターミナルからアプリケーションがインストールできる』のだ。
インストールだけではなく、アンインストールやアップデートも Homebrew-cask から管理できる。ちょうど先日 @wokamoto さんが更新してくれた記事の中に書かれている

$ brew bundle dump

を使えば、これまで使っていた Mac にインストールして(かつ HomebrewHomebrew-cask で管理して)いたアプリケーションを一括して新しい環境の Mac へ再度インストールできる…!!最高かよ!!!

では早速アプリケーションの移行を…と行きたいところだが、今回は地道に Homebrew-caskbrew cask コマンドから入力していく(なんでや笑
これまで Homebrew-cask で管理していなかったアプリケーションもこれを機会に Homebrew-cask で管理するようにしたいのがその理由。そもそもこれまではアプリケーションをあまり Homebrew-cask からインストールしていなかった…。Homebrew-cask からインストールできるアプリケーションの一覧はここで確認できる。このページの一番左の列に記述してある名前でアプリケーションを呼び出せる、というわけだ。

それはさておき、まずインストールするのは「iTerm2」。

iTerm2 」のサイトトップの画面

iTerm2 」はターミナルの操作ができる「 Terminal.app 」の上位互換とも言える、高機能なアプリケーション。Terminal.app ではできない細かい設定ができるので、「黒い画面」を頻繁に使うのであればこちらがお勧めだ。全然関係ないけれど、この画面を改めて見て、初めて iTerm2GPL だということに気づいた。

では早速「 iTerm2 」を Homebrew-cask からインストールしよう。

iTerm2 」をインストール

インストールのコマンドは Homebrew

$ brew install *****

だったのに対して、Homebrew-cask の時は

$ brew cask install *****

となる。なので、iTerm2 をインストールするなら

$ brew cask install iterm2

だ。 return でインストールが始まる。

Homebrew-cask 経由で「 iTerm2 」がインストールされた。

iTerm2 」のインストールが完了したら「 Terminal.app 」は終了して「 iTerm2 」を立ち上げよう。

「開く」をクリックする。
iTerm2 」が起動した。

最初の見た目は Terminal.app と何ら変わらない。Mac のターミナルが白かった人は黒くなるくらい(笑)。「 iTerm2 」がインストールできたらその初期設定を…と行きたいところなのだが、「 iTerm2 」は高機能なだけあって設定項目も非常に多い。「 iTerm2 」の設定だけで更に一記事書けるくらいの内容になってしまう(笑
なので、ここでは本当に最低限の設定だけ。

「テーマ」を『Minimal』に
ウィンドウサイズの Columns(列)を128、Rows(行)を48に

「Scrollback Buffer」を『Unlimited scrollback』にチェック
「Font」を『Ricty』の13(pixel?point?)に。個人的にこのフォントは絶対に外せない。

この設定にして iTerm2 を再起動した画面がこちら。

設定変更後の「 iTerm2 」の画面

一連の初期設定記事が書き終わって、まだ気力があったら「 iTerm2 」の設定の記事でも書きましょうかね…。

ターミナルからのインストール [Quicklook 編]

ここからは補足的な内容になるが、いずれも「あったら便利!」なアプリケーションなので、インストール(またはアップデート)を検討してみていただきたい。

Mac のデフォルトの機能のひとつに「Quicklook」がある。ファイルを選択した状態で space バーを押下するとそのファイルがプレビューできる機能で、手軽にファイルをプレビューできるのでとても便利。

ところで、この「Quicklook」を更に便利に使えるようにできるプラグインが複数存在する。これをターミナル( iTerm2 )経由で Homebrew-cask から一括でインストールしよう。コマンドは以下のとおり。

$ brew cask install qlcolorcode qlstephen qlmarkdown quicklook-json qlprettypatch quicklook-csv qlimagesize webpquicklook suspicious-package

このコマンドでプラグインをまとめてインストールできる。

Quicklook」のプラグインを一括でインストール

簡単にインストールするプラグインを説明すると、

  • qlcolorcode :ソースファイルをシンタックスハイライトして表示
  • qlstephen :プレーンテキストファイルを拡張子なしで表示
  • qlmarkdown :マークダウンファイルを整形して表示
  • quicklook-json :JSON ファイルを整形して表示
  • qlprettypatch :パッチファイルを表示
  • quicklook-csv :CSV ファイルを整形して表示
  • qlimagesize :画像を表示するときにタイトルバーに画像サイズを表示
  • webpquicklook :.webp 画像を表示
  • suspicious-package :インストーラーパッケージを展開できるユーティリティ(Quicklook 以外でも使う)

このコマンドひとつ(まとめて一括で入力しているだけだが)で Quicklook の機能が劇的に上がるので、これは是非最初にやっておきたい。本当ならデフォルトの状態でこれくらいの機能があっていいくらいだ。こうしておくと、ちょっとした確認は全部 Quicklook で済ますことができる。実際、僕はかなり頻繁に Quicklook を使っている。

すべてのプラグインのインストールが一瞬で終わる。

このインストールが済んだらもう一つ、

$ defaults write com.apple.finder QLEnableTextSelection -bool true

と入力して Quicklook 上でテキストを選択できるようにしよう。

Quicklook」でテキストが選択できるように設定を変更する

これもコマンドを入力して return キーを押下するだけだ。

ターミナルから最新版のアプリケーションのインストール

Mac には最初からインストールされているアプリケーション(あるいはプログラム)が多数ある。そのおかげで入手してすぐにあれこれ始められるわけだが、このプリインストールされているアプリケーションは、少々古いバージョンであることがままある。

Mac を開発環境として利用する場合、古いバージョンのままだと新しい機能が実装されていなかったり、実際に稼働させる環境との差異が発生したり検証ができなかったりすることもあるし、場合によっては古いバージョンのアプリケーションにはセキュリティ上の脆弱性が残っている場合もあるかもしれない。

これを解消するには、プリインストールされているアプリケーションの最新版を別途インストールして、そちらを使うようにする必要がある。このときにも、ターミナルから手軽にインストールできる Homebrew が大活躍する。

ターミナルからのインストール [nano 編]

Mac のターミナル(これ以降の説明はすべて iTerm2 が前提だが)操作をする際、ターミナルからのファイル編集は Vim(Vi) になるだろう。
ただ、えせエンジニアとしては Vim の操作は慣れが必要でちょっと敷居が高い。とはいえ慣れてしまったのでどうにか最低限の操作をすることはできるのだが。

ここで、Mac には別のエディタがデフォルトで搭載されているのをご存知だろうか?

【お断り】
ここで宗教上のエディタの選択には関わらないので悪しからずご了承ください。

デフォルトで搭載されていてターミナル上で利用できるエディタの中で、最も敷居が低いと思われるのが nano だ。やはり最初から Mac にインストールされている EmacsVim と比べると機能は少ないかもしれないが、もう少し直感的に操作できるところがありがたい点だと思う。そこで、nano を使う事前の準備として最新版にしておこう。

まずデフォルトの nano のバージョンを確認しておく。プリインストールされている nano のバージョンは 2.0.6

nanoHomebrew からインストールできる。コマンドは

$ brew install nano

となる。

nano をインストール

あら、ここでインストールの経過を見ていると、

If you need to have ncurses first in your PATH run:
  echo 'export PATH="/usr/local/opt/ncurses/bin:$PATH"' >> ~/.zshrc

と出力されていて、「こっちの PATH を先に読ませたいなら以下を実行して」とある。なので、このコマンドを実行する。

PATH を通すコマンドを実行

ここで iTerm2 を再起動(一度ウィンドウを閉じて再度開けばいい)して Homebrew をチェックするコマンド $ brew doctor を実行してみる。

$ brew doctor したら PATH が通ってないと怒られる…
Warning: Homebrew's sbin was not found in your PATH but you have installed

ここでも PATH が通っていないと怒られたので、書いてあるとおり

$ echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.zshrc

をコピペで入力する。

コマンドはコピペで(笑

retuen キーを押下したら、設定の変更を読み込ませるために続いて

$ source ~/.zshrc

と入力する。

設定の変更を読み込ませる

これで設定は反映されているはず。念のため iTerm2 を再起動し、改めて nano のバージョンを確認してみると

nano がアップデートされた

最初は 2.0.6 だった nano のバージョンが最新版の 4.9.3 に切り替わったことがわかる。

ターミナルからのインストール [git 編]

まだあるのかよ…ありますよ!(笑

続いては「 Git 」。Git もやはり最初から Mac にインストールされている。だが、先ほどの nano と同様に最初にインストールされている Git はバージョンが古いのだ。これも最新の Git をインストールしよう。

コマンドはこれまでと同様で Homebrew からインストールする。

$ brew install git

【追記】
迂闊にも最初の git のバージョンを表示せずに最新版のインストールを始めてしまったが、MacOS Catalina 10.15.4 でプリインストールされている git のバージョンは 2.21.0 (Apple Git-122) になる。

インストールはすぐに完了する

インストールが完了したらバージョンを確認してみる。

Git の最新版がインストールされた

この場合、既に PATH が通っているのでそのまま新しくインストールしたバージョンが認識された。

Git を新たに利用する場合、デフォルトのユーザーを登録しよう。ユーザー名は

$ git config --global user.name "{{user}}"

メールアドレスは

$ git config --global user.email {{email}}

と入力する。

Git のユーザーを登録する

もうひとつ、改行コードの変換設定を指定しておく。

$ git config --global core.autocrlf input

この一連の Git の設定(config)については、既に Git を使い始めていれば設定済みなはず。この設定は

#Mac 全体での Git の設定一覧
$ git config --global -l

#コマンドを入力したディレクトリでの Git の設定一覧
$ git config -l

と入力すれば確認できる。

ターミナルからのインストール [git-ftp 編]

ここで更に Git 関連でインストールしておくと便利なものをひとつ追加する。それは「 Git-ftp 」。
ローカルでは Git を使って開発しているが、ファイルをアップロードすべきサーバー側に Git がインストールされておらず、ファイルを FTP 経由でアップロードしなければならないような場合はあったりしないだろうか?「 Git-ftp 」は、最後にアップロードしたあとに変更されたファイルとの差分のファイルだけをアップロードしてくれるスグレモノだ。

公式サイトMac のインストールの項目を見ると

$ brew install git
$ brew install brotli
$ brew install git-ftp

とある。Git は既にインストール済みなので、そのあとの brotli からインストールする。

brotli をインストール

続いて Git-ftp 本体をインストールする。

Git-ftp 」のインストール

これでひと安心。

ターミナルからの設定 [gitignore 編]

せっかく Git の用意ができたので、最初の設定だけこのままやってしまおう。

Gitは、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。

Git – Wikipedia

「変更履歴を記録・追跡する」のが Git だが、なかには『変更履歴を記録・追跡したくない(する必要がない)』ファイルもある。そういったファイルを最初から Git での管理から除外する設定を記述するファイルが『.gitignore』だ。

通常はそれぞれのプロジェクトごとに不要なファイルは変わってくるので、Git 管理するプロジェクトごとに .gitignore ファイルを設定するのだが、「どんなときでもこのファイルは Git 管理したくない」というファイルもある。例えば「.DS_Store(Mac のフォルダの表示設定やフォルダアイコン情報を保存しているファイル)」とか。

こういったファイルは最初から Git の設定から除外してしまおう。全部の設定で無視するには .gitignore_global というファイルを作って Git 側に登録すればいい。そうしておけば、毎度まいど .gitignore ファイルに書かずに済む、というわけだ。この操作をターミナル( iTerm2 )からしていこう。

まず、さきほどやった Git の設定同様

$ git config --global core.excludesfile ~/.gitignore_global

と入力して『.gitignore_global というファイルを使う』ことを設定(config)ファイルに書き込む。

これがちゃんと反映されているか確認するには、先ほど説明した

$ git config -l

を使えばいい。

$ git config -l で内容を確認。書き込まれている。

ただし、いまこの状態だとただ設定しただけで .gitignore_global ファイルがない。なので次にこのファイルを用意する。

さてここで、「どんなときでも Git 管理したくないファイル」はどう判断すればいいだろうか…?そこはもう Web という名の集合知を使おう(笑
Git のリモートリポジトリ管理といえばここと言ってしまっていいだろうというサービス GitHub に、各言語やプログラムに向けた gitignore ファイルだけを集めたリポジトリが公開されている。その中に、まさに「Global」という全体の設定ファイルだけを集めたディレクトリがある。
その中に「macOS.gitignore」というそのものズバリの .gitignore ファイルがあるので、それを使わせてもらおう。

これをダウンロードして Finder でリネームするか、あるいはまず内容をコピーして、新たに作った .gitignore_global ファイルにペーストして保存すれば終わりなのだが、せっかくなので全部ターミナルで済ませてみよう。

まず、前回の記事でインストールした wget コマンドを使う。そのコマンドはこちら。

$ wget https://github.com/github/gitignore/blob/master/Global/macOS.gitignore

読み込む URL は「macOS.gitignore」のページそのもの。

macOS.gitignore」ファイルを取得する

ちなみに、wget コマンドは自分がいる場所(=コマンドを入力した階層・場所)にファイルをダウンロードしてくるので、もし別の場所からコマンドを入力した場合はダウンロード後にファイルを移動する必要がある。

macOS.gitignore」ファイルがダウンロードされた

このコマンドを入力したら、ちゃんと自分の想定どおりにファイルがダウンロードされたか確認してみる。
ディレクトリの情報(ファイルもだが)を表示するのは ls コマンド。$ ls -la と入力すると、隠しファイルも含めて容量とかタイムスタンプなどが表示される。

$ ls -la でファイルを確認

これを見ると一番下の行に「macOS.gitignore」ファイルがあるのがわかるので、間違いなく想定の階層に「macOS.gitignore」ファイルがダウンロードされた。ただ、これで終わりではない。ファイル名をリネームしないと…。

ファイル名を変更するのは mv コマンド。本来は「move(移動)」のコマンドだが、『名前を変えて同じ場所に移動する』のがリネームだと考えれば確かにやってることは一緒だ。
先ほど決めたファイル名は『.gitignore_global』だったので、これに変える。このときのコマンドは

$ mv macOS.gitignore .gitignore_global

となる。意味するところは『「macOS.gitignore」を「.gitignore_global」に移動する』だ。なるほど…!

リネームのコマンドを入力

これを入力したら再度 $ ls -la でディレクトリの中身を確認しよう。

もう一度 $ ls -la でファイルを確認

これで「macOS.gitignore」が「.gitignore_global」に移動された(=リネームされた)のがわかる。

余談だが、gitignore のリポジトリには今回の「Global」含めありとあらゆる .gitignore ファイルが公開されているので、自分がよく使うツールや言語などで調べておくといいだろう。ここのリポジトリを使って、任意に選んだプログラムすべての除外するファイルをひとつの .gitignore ファイルにまとめて出力してくれる Web サービスまである。ひゃー便利♪

ターミナルからのインストール [アプリケーション 編]

繰り返しになってしまうが、この記事この記事でも解説したように、Homebrew-cask がインストールされているとターミナル経由で直接アプリケーションがインストールできる。そこでも触れているが、Homebrew-cask からインストールできるアプリケーションはできるだけ Homebrew-cask からインストールしておいたほうが管理がしやすい。

ということで、いよいよアプリケーション一式のインストール。

iTerm2 の項でも書いたように、Homebrew-cask からインストールできるアプリケーションの一覧はここで確認できる。

例えば、こちらの記事でピックアップしたアプリケーションを一気にインストールしようと思ったら以下のようなコマンドになる。

$ brew cask install 1password adobe-creative-cloud alfred appcleaner bettertouchtool chatwork discord dropbox imageoptim joplin karabiner-elements keycastr keyboard-maestro keyboardcleantool licecap macdown mousepose notion scrutiny sequel-pro sketch slack sourcetree station subethaedit sublime-text transmit virtualbox visual-studio-code krisp zoomus

長いよ…(笑
スペース区切りでアプリケーション名を羅列していけば一気にインストールできるのも魅力のひとつ。

それぞれのウェブサイトからダウンロードしてもいいのだが、リンクをクリックしてページが開いたらダウンロードリンクを探して、見つかったらダウンロードページが開くまで待って…というのを延々繰り返すのは面倒

【2020年度版第2弾】新しい Mac を手に入れたらやること一式【アプリケーション編】

もうまさにこれ。これが解消できるだけでも導入する価値があるのでは?

ともあれ、早くインストールしよう。ただでさえ進捗ダメなんだから(笑
とりあえず以前の記事の内容を少しアップデートした上で『無料アプリ』『有料アプリ』に分けてみた。

まずは無料アプリをインストール。

$ brew cask install alfred appcleaner background-music biscuit chatwork chrome-devtools chrome-remote-desktop-host discord docker dropbox figma firefox gas-mask google-chrome google-japanese-ime handbrake imageoptim joplin karabiner-elements keyboardcleantool keycastr krisp licecap macdown microsoft-teams mousepose ngrok notion sequel-pro slack sourcetree station subethaedit sublime-text toggl vagrant vagrant-manager virtualbox visual-studio-code vivaldi zoomus

以前リストアップしたものから増えたところだけ。

  • background-music :アプリケーションごとに音量を変えられる
  • biscuit :ブラウザチックなアプリケーションランチャ
  • chrome-remote-desktop-host :Chrome のリモートデスクトップアプリ
  • docker :docker のデスクトップアプリ
  • figma :デザインツール figma のデスクトップアプリ
  • firefox :ブラウザ
  • gas-mask ;HOSTS 情報の設定書き換えアプリ
  • google-chrome :Chrome ブラウザ(Homebrew-cask で管理するためいったんアンインストール済み)
  • google-japanese-ime :Google 日本語入力(Homebrew-cask で管理するためいったんアンインストール済み)
  • handbrake :動画圧縮
  • krispこの記事が詳しい←
  • ngrok :ローカルで立てた Web サーバを外部公開できる
  • toggl :タスクの時間管理アプリ
  • vagrant :仮想マシン構築ツール
  • vagrant-manager :Vagrant をメニューバーから操作できる
  • vivaldi :ブラウザ

おいおい、だいぶ増えたな、最初よりよっぽど長いコマンド(笑

今回は Homebrew-cask で管理したいがために Chrome と Google 日本語入力をわざわざ一度アンインストールしたが、これはこちらの記事で先にインストールしているからで、当然のことながら通常はそんなことをする必要はない。普通にインストールしてそのまま使うか、最初から Homebrew-cask からインストールすればいいだけだ。
それと、先に Homebrew-cask からインストール済みなので、もちろん iTerm2 だけはここに含めていない。

これで1行のコマンド(笑

あとは return してしばらく待っているだけでいい。

インストールが終わった

実は途中 virtualbox のインストールで失敗して止まってしまったのだが、もう一度それ以降のアプリケーションを指定してコマンドを入力して完了。ちょうど上の画像の最上部で vertualbox 以降のコマンドを入力している。

一方、有料アプリはこちら。

$ brew cask install 1password bettertouchtool keyboard-maestro scrutiny sketch

こちらの内容は以前と変わらない。先ほどと比べれば全然短いのであっという間に終わる。

黒い画面便利!

「黒い画面が』というかこの場合『HomebrewHomebrew-cask が』なんだけど(笑

もちろん、これはターミナルを使った極々一部の操作でしかなくて、本来の使い方としては root 権限になって特別な操作をしたり SSH でサーバーに接続したりすることになる。ただ、こうしてターミナルを積極的に操作していれば「あれ、意外と簡単…」となって敷居が少しは下がるのではないだろうか。
実際のところ、そもそもここでの説明は本当にコピペしかしていない(笑)。GUI だったら手間と思えるようなこともターミナルから直接操作できれば速くて確実だ。ただ、その分「途中のワンクッション」がなかったりするので、例えば一旦削除したら復元できないなんてこともあるので取り扱いには注意を。

ちなみに、今回は全く触れずに進んでしまったが

$ brew install mas

として mas-cli をインストールすると、Mac App Storeにあるアプリケーションも Homebrew から管理できるようになる。もうなんでもターミナルから操作できる感半端ないな…。万能っすな。このあたりを含めてこちらの記事が詳しい。

でですね、黒い画面から設定したいことはまだまだあるので、更に次回へ続くんですよ…( ꒪⌓꒪)