【Mac】2020年春版、MacBook(Catalina)を購入して最初にやると良い事

最近、5年程使用していたMacBookを買い替えました。
support.apple.com

早速触ってみましたが、便利になりましたし処理も軽くなりました。
購入するだけの価値はあります。

本格的に新しいMacを仕事で使うにあたり、今まで使っていたMacの環境を移行する必要があります。
苦楽を共にしてきたPCですから、環境も熟成された秘伝のタレのような状態になっていました。
(途中、クラッシュして初期化したこともありますが…)

やはり、久しぶりの環境構築すると、色々調べる部分も多かったです。
今回は、構築の経緯について記事にまとめます。

事前情報

新しいMacの初期バージョンはCatalinaでした。
この記事は、CatalinaのMacを構築する想定です。

www.apple.com

インストールするパッケージ

web関係の開発環境を整えます。
環境構築するにあたり、設定するパッケージは以下の通りです。

パッケージ名 バージョン(端末の初期バージョン)
node v13.8.0
python 3.8.2(2.7.16)
php 7.4.3(7.3.11)
aws cli 2.0.2

また、下記はデフォルトで入っている物を使用します。
- Git

GUIツールのインストール

前の環境で使用していたツールをインストールします。
ここでは、使い勝手が良い無償(一部機能制限あり)ツールについて紹介します。

ツール名 用途
xcode Macの開発ツール。パッケージインストール時に関係してくるので必須。
BetterTouchTool ショートカット追加、ウィンドウサイズ変更ショートカット追加なども出来る。
iTerm2 ターミナル。拡張性がある。

Web開発であると便利なツール

開発する上でインストールして置くと開発が捗るツールです。

ツール名 用途
Google Chrome 使いやすく高機能なブラウザ。
TablePlus データベースをGUIで確認するためのツール
Postman WebAPI検証ツール
VirtualBox 仮想環境を作るツール。
サーバーから仮想環境を作ったり、MacからMicrosoft Edge(または、IE)の検証を出来る。
Vagrant 仮想環境構築のレシピを実行するツール。前述したVirtualBoxと併用して使う。
CyberDuck GUIのFTPクライアントツール。
Docker コンテナ型のアプリケーション構築ツール。
クライアントPCで直接仮想環境を作ったり、VartualBoxで作った環境にアプリケーション構築する事もする。

尚、Dockerは別途説明を記載します。

やり取りに便利なツール

クライアントとコミニケーションをする時に重宝するツールです。

ツール名 用途
macdown markdownエディタ。軽い。
skitch 画像加工ツール。キャプションにコメントを書いたり、印をつけるのが楽。

homebrewをインストール

Macのパッケージ管理ツールをインストールします。

brew.sh

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ brew update

brew installとbrew cask installの違い

パッケージをインストールするコマンドに変わりはないのですが、brew cask installの方はGUIもインストール出来ます。
Launchpadでアプリが表示される状態になります。
下記のように、一括アップグレードも出来ます。

$ brew cask upgrade

caskでインストールできるかどうかは、brew search (パッケージ名)で確認できます。  

$ brew search vagrant 
==> Formulae
vagrant-completion
==> Casks  # もし、caskが対応している場合は項目が追加されます。    
vagrant ✔                  vagrant-manager            vagrant-vmware-utility

zshの設定

Catlineから、使用するコマンドラインがzshになります。

macOS Catalina から、Mac は zsh をデフォルトのログインシェルおよびインタラクティブシェルとして使うようになります。
それ以前のバージョンの macOS でも、zsh をデフォルトにすることができます。

https://support.apple.com/ja-jp/HT208050

開発で使いやすくするために、zsh環境をカスタマイズします。

【Tips】ログインし直さずに設定を反映する方法
変更した.zshrcを反映するためにはターミナルを開き直す必要があります。
もし、開き直すのが面倒な場合は、下記で反映させる事が出来ます。

$ souce .zshrc

zshのフレームワーク設定

デフォルトでは、Gitのリポジトリ関係、テキストが単色で見辛い等開発に適さないのでエディタをカスタマイズします。
zshカスタマイズは.zshrcを変更しても良いですが、今回はフレームワークで設定します。

今回は、oh-my-zshを使用します。
github.com

インストールは、下記のコマンド実行するだけで環境が整います。

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

【Tips】既存の.zshrcを統合する
既に.zshrcがある場合、oh-my-zshをインストールすると.zshrc.pre-oh-my-zshというファイルにリネームされます。
この状況では今までの設定が無効です。
もし、他の設定を引き継ぐ場合は、.zshrcに追加します。

$ cat .zshrc.pre-oh-my-zsh >> .zshrc

oh-my-zshを見やすくする。

デフォルトで設定されているテーマでも特に支障はないですが、使いやすくカスタマイズします。

既存のテーマはrobbyrussellに設定されています。
今回は、GithubのReadmeで取り上げられているagnosterを試してみます。

github.com

このテーマはターミナルにiTerm2を使う事が前提です。
もしテーマを使用する場合は、事前にiTerm2をインストールしてください。

テーマ変更

既にある.zshrcZSH_THEMEを、agnosterに設定します。

ZSH_THEME="agnoster"
フォントダウンロード

このテーマはPowerline Fontsというフォントを使用します。

github.com

別途、フォントをダウンロードしておきます。

$ git clone https://github.com/powerline/fonts.git --depth=1
$ cd fonts
$ ./install.sh
$ cd ..
$ rm -rf fonts

【Tips】IDEAの付属ターミナルを扱う場合の注意
冒頭で書きましたが、Macの現行バージョンでは、IDEAのターミナルもzshなので、IDEAで表示されるターミナル反映される…のですが、 iTerm2ではないので見辛い色になってしまいます。
f:id:nakahashi_h:20200310063126p:plain その場合はIDEAのターミナルをiTermにするか、別のテーマにするなどの対策が必要になります。

Pythonインストール

バージョン管理ツールインストール

まずは、バージョン管理ツールをインストールします。
今回は、pyenvを使用します。

github.com

pyenvはhomebrewでインストール出来ないので、ソースをクローンしてインストールします。

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.zshrc

最新バージョンをインストール

インストールしたpyenvから、最新のバージョンをインストールします。

$ pyenv install --list
...
3.8.2
...
$ pyenv install 3.8.2
$ pyenv global 3.8.2
$ python --version
Python 3.8.2

nodeインストール

バージョン管理ツールインストール

今回はnodenvを使用します。
github.com

homebrewでインストールします。   

$ brew install nodenv

初期設定

インストール後、初期設定をします。

$ nodenv init
# Load nodenv automatically by appending
# the following to ~/.zshrc:

eval "$(nodenv init -)"
$ echo '$(nodenv init -)' >> ~/.zshrc

最新バージョンをインストール

インストールしたnodenvから、最新のバージョンをインストールします。

$ nodenv install --list
...
13.8.0
$ nodenv install 13.8.0
$ nodenv global 13.8.0
$ node --version
v13.8.0

npmのアップデート

npmを使いますので、一緒にアップデートしておきます。

$ npm install -g npm

npm installが動かない場合

別のPCで作成されたnpmのpackage.jsonを元にライブラリをインストールする場合、 新しい環境では正常に動かない場合があります。   

$ npm install
...
No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.  
No receipt for 'com.apple.pkg.DeveloperToolsCLILeo' found at '/'.  
No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.  
gyp: No Xcode or CLT version detected!

上記は、Xcodeが見つからないため発生するエラーです。
私の場合、App Storeからアプリケーションをダウンロード済みでので、インストールしたappファイルを指定する事で解決しました。

$ xcode-select --switch /Applications/Xcode.app
$ xcode-select -print-path  
# アプリケーションのインストール先が変わっているか確認
$ xcodebuild -license       
# 初回はライセンスの同意が必要。

もし、Xcodeをインストールしていなければ次のコマンドでインストールします。

$ xcode-select --install

phpインストール

実際にバージョン管理ツールで最新版のphpをインストールをしてみたのですが、思いの外手間がかかりました。

デフォルトでも7.3系ですので、開発するには十分なバージョンです。
特にバージョン指定がないのであれば、バージョン管理ツールをインストールの項は省略して良いかもしれません。

バージョン管理ツールをインストール

今回はphpenvを使用します。
github.com

homebrewでインストール出来ないので、phpenvはgitをクローンして直接インストールします。

$  git clone git://github.com/phpenv/phpenv.git ~/.phpenv
$  echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> .zshrc
$  echo 'eval "$(phpenv init -)"' >> .zshrc

php-buildをインストール

複数のphpのバージョンを切り替えられるように、php-buildをインストールします。

github.com

$ git clone https://github.com/php-build/php-build $(phpenv root)/plugins/php-build

phpの最新バージョンをインストール

phpenvでphpの最新版をインストールします。
現時点での最新バージョンは7.4.3です。

$ phpenv install --list
...
7.4.3
関連するパッケージをインストール

phpenv経由でphpをインストールする場合、関連するパッケージを別途インストールする必要があります。
homebrewで関連するパッケージをインストールします。

$ brew install krb5 bzip2 openssl@1.1 libpng libjpg iconv icu4c oniguruma libedit tidy-html5 libzip libxml2

インストールしたパッケージはそのままでは使用できないので、.zshrcで下記の環境変数を設定、変更します。

  • PATH
  • PKG_CONFIG_PATH
  • PHP_BUILD_CONFIGURE_OPTS
$ vim .zshrc
...省略...

# krb5
export PATH="/usr/local/opt/krb5/bin:$PATH"
export PKG_CONFIG_PATH="/usr/local/opt/krb5/lib/pkgconfig"

# bzip2
export PATH="/usr/local/opt/bzip2/bin:$PATH"
export PHP_BUILD_CONFIGURE_OPTS="--with-bz2=$(brew --prefix bzip2)"

# openssl
export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig:$PKG_CONFIG_PATH"

# libpng
export PKG_CONFIG_PATH="/usr/local/Cellar/libpng/1.6.37/lib/pkgconfig:$PKG_CONFIG_PATH"

# libjpg
export PKG_CONFIG_PATH="/usr/local/Cellar/jpeg/9d/lib/pkgconfig:$PKG_CONFIG_PATH"

# iconv
export PATH="/usr/local/opt/libiconv/bin:$PATH"
export PHP_BUILD_CONFIGURE_OPTS="$PHP_BUILD_CONFIGURE_OPTS --with-iconv=$(brew --prefix libiconv)"

# icu4c
export PATH="/usr/local/opt/icu4c/bin:$PATH"
export PATH="/usr/local/opt/icu4c/sbin:$PATH"
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig:$PKG_CONFIG_PATH"

# oniguruma
export PKG_CONFIG_PATH="/usr/local/Cellar/oniguruma/6.9.4/lib/pkgconfig:$PKG_CONFIG_PATH"

# libedit
export PKG_CONFIG_PATH="/usr/local/opt/libedit/lib/pkgconfig:$PKG_CONFIG_PATH"

# tidy-html5
export PKG_CONFIG_PATH="/usr/local/Cellar/tidy-html5/5.6.0/lib/pkgconfig:$PKG_CONFIG_PATH"

# libzip
export PKG_CONFIG_PATH="/usr/local/Cellar/libzip/1.6.1/lib/pkgconfig:$PKG_CONFIG_PATH"

# readline
export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig:$PKG_CONFIG_PATH"

# sqlite
export PATH="/usr/local/opt/sqlite/bin:$PATH"
export PKG_CONFIG_PATH="/usr/local/opt/sqlite/lib/pkgconfig:$PKG_CONFIG_PATH"

# libxml2
export PATH="/usr/local/opt/libxml2/bin:$PATH"
export PKG_CONFIG_PATH="/usr/local/opt/libxml2/lib/pkgconfig:$PKG_CONFIG_PATH"
phpのインストール

前項の設定でphpenvから7.4系のバージョンをダウンロードする準備が出来ました。
次のコマンドでインストールします。

$ phpenv install 7.4.3
$ phpenv versions
* system (set by /Users/xxx/.phpenv/version)
  7.4.3  
$ php global 7.4.3
$ php -v
PHP 7.4.3 (cli) (built: Mar  9 2020 17:59:54) ( NTS )

composerインストール

PHPのパッケージ管理のためにcomposerをインストールします。

getcomposer.org

Laravel等のフレームワークでは、必須ですので入れておくと便利です。

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"

composerのパスを通す

毎回pharファイルを実行するのは手間なので、composerで実行できるようにbin配下に移動します。

$ sudo mv composer.phar /usr/local/bin/composer

AWS CLIのインストール

AWSを扱う事も多いです。
ターミナルからサービスを操作する事もありますので、AWSでコマンドライン用のパッケージをインストールします。

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-mac.html

$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg AWSCLIV2.pkg -target /

AWS CLIのセットアップ

AWS CLIからサービスを利用する場合、事前にログインする必要があります。
認証情報を設定する場合は、次のコマンドで認証をします。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-configure.html

下記は、IAMで取得したユーザーのセットアップ例です。

$ aws configure
AWS Access Key ID [None]:  (IAMで発行時に取得したアクセスキー)
AWS Secret Access Key [None]: (IAMで発行時に取得した秘密キー)
Default region name [None]: ap-northeast-1
Default output format [None]: json

既に旧PCで管理している場合は、.aws/credentials.aws/configを移行します。

Dockerインストール

今回はインストーラーからDocker Desktop for Macを導入します。
公式ページのダウンロードページにアクセスして、GET Dockerを選択するとdmgをダウンロードします。

hub.docker.com

あとは、dmgを実行すればDocker環境のインストールが始まります。

【Tips】初期導入時の注意
デフォルトの状態ではPCのファンが轟音を立てるので気が気ではありません。
アクティビティモニタを見ると、cpuの使用率が跳ね上がります。
もし、そこまで性能を求めないのであれば、CPUの割り当てを落とす事で改善出来ます。

  1. ステータスメニューDockerアイコンを選択、メニューからPreferences...を選択。 f:id:nakahashi_h:20200310063214p:plain
  2. 左メニューからResourcesを選択します。
  3. CPUsの初期値は高めに設定されていますので、下げればCPUが軽くなります。 f:id:nakahashi_h:20200310063407p:plain

もしくは、そもそもDockerを切っておくのが良いかもしれません。

Macと一緒に購入すべき物

数世代前(私の場合は2015年モデル)の場合は、USBやThunderbolt、HDMIなどのポートがPCについていました。
9世代のMacはThunderbolt 3(USB-C)ポートのみの構成になっています。

そのため、旧Macでは下記をするには別途機器が必要になります。

  • HDMIの外部ディスプレイ出力(無線なら可能)
  • USB-Aの機器使用
  • Thunderboltの1、2の機器使用

例えば、外部ディスプレイ出力するためには、USB-CのHDMI変換アダプタを用意します。
とは言え、必要なポート用にアダプタを用意していると、4つのポートは直ぐに埋まってしまいます。
色々なポートがセットになったドッキングステーションを一緒に購入する事をお勧めします。

【Tips】ダブル、トリプルディスプレイにしたい
HDMIポートを出力するための変換アダプタを複数購入してください。
例えば、VGAポートとHDMIポートがセットになっているドッキングステーションを使った場合、それぞれのポートで出力しようとするとミラーリングします。

引越しで役に立つ機能、ツール

引越しをする際、引越し元のデータを持ってきたい時があります。
データの移行の仕方は、USBメモリやHDDでデータを移動したり、Dropbox等のクラウドアプリケーションを経由してデータをやりとりするなど色々な方法があります。
しかし、別途購入が必要だったり、アプリケーションを経由するのは手間です。

ここでは、直接やり取りするための方法について触れます。

AirDrop

mac間でファイルデータのやり取りが出来る機能です。

support.apple.com

MacからMacへの引越しをする場合、直接ファイルデータのやり取りできます。

MX Master シリーズ

LogiCoolの多機能マウスです。

引越しをする際に特に便利な機能は、異なるデバイス間でテキストのコピペができる事です。
引越し元でしか管理していない情報(パスワードや、設定値)を簡単に移行できます。

余談

一旦設定を終えて、この記事用に情報をまとめていたのですが、同じ時期に初期設定をされた方がいらっしゃるようでした。
qiita.com

私の記事より事細かく記載されており、専門的な設定もしていますのでお勧めします。

©︎2017-2018 WebSandBag