最近、5年程使用していたMacBookを買い替えました。
support.apple.com
早速触ってみましたが、便利になりましたし処理も軽くなりました。
購入するだけの価値はあります。
本格的に新しいMacを仕事で使うにあたり、今まで使っていたMacの環境を移行する必要があります。
苦楽を共にしてきたPCですから、環境も熟成された秘伝のタレのような状態になっていました。
(途中、クラッシュして初期化したこともありますが…)
やはり、久しぶりの環境構築すると、色々調べる部分も多かったです。
今回は、構築の経緯について記事にまとめます。
事前情報
新しいMacの初期バージョンはCatalinaでした。
この記事は、CatalinaのMacを構築する想定です。
インストールするパッケージ
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のパッケージ管理ツールをインストールします。
$ /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
を試してみます。
このテーマはターミナルにiTerm2
を使う事が前提です。
もしテーマを使用する場合は、事前にiTerm2をインストールしてください。
テーマ変更
既にある.zshrc
のZSH_THEME
を、agnosterに設定します。
ZSH_THEME="agnoster"
フォントダウンロード
このテーマはPowerline Fonts
というフォントを使用します。
別途、フォントをダウンロードしておきます。
$ 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ではないので見辛い色になってしまいます。
その場合はIDEAのターミナルをiTermにするか、別のテーマにするなどの対策が必要になります。
Pythonインストール
バージョン管理ツールインストール
まずは、バージョン管理ツールをインストールします。
今回は、pyenvを使用します。
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
をインストールします。
$ 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をインストールします。
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
をダウンロードします。
あとは、dmgを実行すればDocker環境のインストールが始まります。
【Tips】初期導入時の注意
デフォルトの状態ではPCのファンが轟音を立てるので気が気ではありません。
アクティビティモニタを見ると、cpuの使用率が跳ね上がります。
もし、そこまで性能を求めないのであれば、CPUの割り当てを落とす事で改善出来ます。
- ステータスメニューの
Docker
アイコンを選択、メニューからPreferences...
を選択。- 左メニューから
Resources
を選択します。- CPUsの初期値は高めに設定されていますので、下げればCPUが軽くなります。
もしくは、そもそも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間でファイルデータのやり取りが出来る機能です。
MacからMacへの引越しをする場合、直接ファイルデータのやり取りできます。
MX Master シリーズ
LogiCoolの多機能マウスです。
引越しをする際に特に便利な機能は、異なるデバイス間でテキストのコピペができる事です。
引越し元でしか管理していない情報(パスワードや、設定値)を簡単に移行できます。
余談
一旦設定を終えて、この記事用に情報をまとめていたのですが、同じ時期に初期設定をされた方がいらっしゃるようでした。
qiita.com
私の記事より事細かく記載されており、専門的な設定もしていますのでお勧めします。