MacBookPro2015を3年弱ほど使っていましたが、この度MacBookPro2018を手に入れることができたので、その際の移行作業を書きます。
それだけでは寂しいので、ちょっとしたパフォーマンス比較もやってみました。
移行前後のハードスペック紹介
移行前
- MacBook Pro (Retina, 13-inch, Early 2015)
パーツ | 型番 |
---|---|
CPU | Intel Core i7-5557U @ 3.1 GHz (2 cores) |
メモリ | 16 GB 1867 MHz DDR3 |
グラフィック | Intel Iris Graphics 6100 1536MB |
ディスク | APPLE SSD SM0512G (500GB) |
移行後
- MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports)
パーツ | 型番 |
---|---|
CPU | Intel Core i7-8559U @ 2.7 GHz (4 cores) |
メモリ | 16 GB 2133 MHz LPDDR3 |
グラフィック | Intel Iris Plus Graphics 655 1536 MB |
ディスク | APPLE SSD AP0512M (500GB) |
前提条件
- 綺麗な環境で作り直したいので移行アシスタントは使いません
- 基本的に以前の環境をそのまま移行したいので、ディレクトリ構造は同じになるようにします。そのため、ユーザー名は移行前と同じにします。
アプリケーションの移行
基本的にHomebrewで管理しています。Homebrewにない場合のみAppStoreや公式サイトからダウンロードして直接インストールしています。
Homebrew
-
移行前のインストール済みアプリケーションのリスト作成
移行前の環境で以下のコマンドを実行し、Homebrewのダンプファイル(Brewfile)を作成します
$ brew bundle dump
-
移行先にHomebrewをインストール
Homebrew(公式サイト)を参照 -
移行先にアプリケーションを一括インストール
移行元で作成したBrewfile
を移行先にコピーし、Homebrewに読み込ませて一括インストールします
$ brew bundle # Brewfileを配置したディレクトリで実行
注意
移行元にインストールした時には存在したが、もう存在しないものがあるかもしれないので、エラーが発生したら個別対応します。
ちなみに、私の場合は以下のエラーが発生しました。
-
Tapping homebrew/versions has failed!
- homebrew/coreに統合されたため不要となりました。Brewfileから
tap "homebrew/versions"
を削除しました。 Homebrew(Versions)
- homebrew/coreに統合されたため不要となりました。Brewfileから
-
Installing firefox-ja has failed!
,Installing thunderbird-ja has failed!
- 日本語版が別パッケージになっていたがパッケージは一つになり、システムの言語設定を見るようになったらしいです。Brewfileの
cask "firefox-ja"
,cask "thunderbird-ja"
をcask "firefox"
,cask "thunderbir"
に変更しました。
- 日本語版が別パッケージになっていたがパッケージは一つになり、システムの言語設定を見るようになったらしいです。Brewfileの
Homebrew以外
AppStore, 個別サイトから一つずつインストールしました。
設定の移行
基本的にファイル、ディレクトリをそのまま移行します。
シェル
- ~/.bash_homebrew
- ~/.bash_profile
- ~/.bashrc
ssh(鍵も含む)
- ~/.ssh
git
- ~/.git-completion.bash
- ~/.git-prompt.sh
- ~/.gitconfig
- ~/.gitignore_global
vim
- ~/.vimrc
Karabiner-Elements
- ~/.config/karabiner
追記(2018/09/12)
Karabiner-Elements実行中にIntellijIDEAでCommand+F12
のようなファンクションキーありのショートカットを使おうとしてもうまく動かない状況がありました。具体的には、TouchBarにファンクションキーを表示させるためにfn
キーを使い、fn+Command+F12
と押してもF12
と認識される状況です(IntellijIDEAのPreferences-Keymap-Find Shortcutで確認)。これをちゃんと動くようにするためには、Karabiner-ElementsのDevices設定で以下の赤枠にチェックを入れる必要がありました。

Karabiner-Elements Issues(#535)
iTerm2
iTerm2の設定をファイルに書き出すように設定しておき、そのファイルを移行します。(Preferences
-General
-Preferences
のload preferences from a custom folder or URL
にチェックを入れてディレクトリを指定)
IntellijIDEA
IntellijIDEAのファイル
-設定のエクスポート(インポート)
データの移行
OneDrive
ほとんどのデータはOneDriveに同期していたので、OneDrive.appをインストールし、移行前と同じディレクトリパスを同期させるように設定すれば勝手に移行されました。
Thunderbird
- 移行元の
~/Library/Thunderbird/profiles.ini
にプロファイルのパスが書かれているのでそのディレクトリを移行先の同じディレクトリパスにコピーします - 移行先でThunderbird.appをインストールし、一度起動します
- 新しいアカウントは作成せず終了します
- 移行先の
~/Library/Thunderbird/profiles.ini
にプロファイルのパスが書かれているのでそれを移行元と同じになるように変更します
;Pathを絶対パスにする場合、IsRelativeは0にする
IsRelative=0
Path=/Users/hoge/path/to/thunderbird/Profiles/xxxxxx.yyyyyy
ParallelsDesktop
- 移行前に全てのクライアントはシャットダウンしておきます(サスペンドではありません)
-
~/Documents/Parallels
をそのまま移行します(移行先も同じディレクトリパスとなるようにします)
Safariブックマーク、キーチェーンなどのiCloud関係
iCloudでの同期設定をしていれば、特に何もせず同期されました
データ移行でハマったこと
- USBメモリを使って移行する場合
-
ファイルをそのままコピーするとファイルのパーミッションが変わってしまうのでzipなどに固めておいたほうがいいです。私は作業中のGitリポジトリをそのまま移行したらパーミッションが変わってしまい大量に更新扱いになってしまいました(もちろんやり直しました。。。)
$ zip -r /Volumes/USBMEM/hoge hoge
-
一つのファイルにするので4GB以上のファイルを扱えるように、USBメモリのフォーマットを
exFAT
にしないといけませんでした
-
- Macのファイル共有を使いネットワーク経由で移行する場合
-
cpコマンドだと大量のファイルをコピーするとどんどん遅くなっていったのと、途中で失敗した際の再開が面倒だったので
rsync
を使うようにしました$ rsync -avhP hoge /Volumes/移行先PC/
-
パフォーマンス比較
移行方法を書いただけでは味気ないので実際に行ったパフォーマンス比較の結果も書いておきます。
1. CPUベンチマーク
Geekbench4を使ったベンチマークです。
|項目|結果(移行前)|結果(移行後)|差|
|:--|:--|:--|:--|:--|
|Single-Core Score|4107|5435|1.3倍|
|Multi-Core Score|7930.5|18639|2.6倍|
2. Diskベンチマーク
Blackmagic Disk Speed Testを使ったベンチマークです。
|項目|結果(移行前)|結果(移行後)|差|
|:--|:--|:--|:--|:--|
|Read|1127.5MB/s|2566.78MB/s|2.3倍|
|Write|439.36MB/s|1667.38MB/s|3.8倍|
3. Docker for Mac上のPostgreSQLのpgbench
Docker for Mac上のPostgreSQL10のコンテナ(公式)のpgbenchです。
$ pgbench -U postgres -c 10 -t 1000 test
|項目|結果(移行前)|結果(移行後)|差|
|:--|:--|:--|:--|:--|
|tps|1109|1833|1.66倍|
4. 実作業によるパフォーマンス比較
ベンチマークだけだと実際にどのくらいかわかりにくいかなと思ったので、実際に私がやってるWebアプリの開発作業の処理時間を比較してみました。
4-1. ビルド
JavaのWebアプリケーションのビルド時間です。約10000クラスのコンパイル、150MBのwarファイルの作成などを行います。
|項目|結果(移行前)|結果(移行後)|差|
|:--|:--|:--|:--|:--|
|ビルド|2分40秒|1分10秒|0.46倍|
4-2. サーバー起動
アプリケーションサーバー(Tomcat)を起動し、Webアプリケーションが利用可能になるまでの時間です。
|項目|結果(移行前)|結果(移行後)|差|
|:--|:--|:--|:--|:--|
|サーバー再起動|1分29秒|31秒|0.35倍|
最後に
3年も違うから速くなるだろうなぁとは思っていましたが、実際にMacBookPro2018を使ってみると思った以上にサクサク動いて快適でした。仕事の関係上Windowsが必要で仮想環境で動かしていますが、MacBookPro2015だと動きがもっさりしていてイライラすることも多々ありましたが、MacBookPro2018ではキビキビ動いて実機で動かしてるのと変わらないんじゃないかと思ってしまうくらいで感動しました。やっぱりハードは新しくしないとダメですね。
ただ1点問題があるとすれば、やはりTouchBarですね。まだまだ慣れません。ファンクションキーを常に表示するようにもできますが、なんか負けた気がするのでしばらくはTouchBarとちゃんと付き合っていこうと思います