LoginSignup
22
21

Macの初期化→リストアを良い感じにする

Last updated at Posted at 2020-03-20

BrewfileMackupDockerDropboxを使って良い感じにリストアできる環境を作ったので、まとめます。

以下の記事をめちゃくちゃ参考にしました。
macOSでの開発環境を全部Docker化したらリストア時間が1時間半になった

使用する主なツール

  • Brewfile
    • 必要なアプリをファイルに列挙して、コマンド一発で全部インストールできる。コマンドラインで使うツール、インストーラーを使ってインストールするアプリ、AppStoreからインストールするアプリ、全てコマンド1つ。最高。(Brewfileを使う
  • Mackup
  • Dropbox
    • 重要なファイルやBrewfile、Mackupで抽出した設定ファイルを保存。ソースコードもここで保存する(当初はGitHubだけで良いと考えたけど、Git管理対象外のファイルもあるので)
  • GoogleDrive
    • クラウド上のゴミ箱として。必要ないけど削除するのは嫌なファイルを保存
  • Docker
    • 開発環境をDockerで作り、ローカルの言語やツールに依存しない状態を保つ
  • Bitwarden
    • パスワードマネージャー

初期化(Total 1h)

バックアップ

  • 大切なファイルをDropboxに
  • 大切ではないけど消すのは嫌なファイルをGoogleDriveに
  • アプリの設定ファイルをMackupでバックアップ
  • 開発環境を全部Dockerで作っておく
    • ローカルに入ってる言語とかを使わない
  • DBの接続情報(特にパスワード)をBitwardenにメモ
  • 個別のバックアップ機能を持っているアプリの対応
    • Biscuitの設定をエクスポートしてDropboxに保存
    • Transmitの接続情報をエクスポートしてDropboxに保存(お気に入り→書き出し)。パスワードはBitwardenのメモで管理。

最新のOSにアップデート(30m)

念のため先にアップデート。
データ消去の後に何かのコマンドを押してると勝手に最新OSが入るみたいですが、押し忘れたりしたらしんどいので。

「りんごマーク」>「このMacについて」>「ソフトウェア・アップデート」

リカバリーモードでmacを起動

シャットダウン → コマンド + Rを押しながら起動

データを完全削除

「macOSユーティリティ」→「ディスクユーティリティ」→「内蔵」→「Macintosh HD – Data」→「ボリューム>マイナスマーク」→「削除」→「Macintosh HD」→「削除」→「プラスマーク」→「Macintosh HDなどの名前で新規ボリュームを作成」

[完全版]macOS Catalinaをクリーンインストールする方法

OSを再インストール(25m)

「macOSユーティリティ」→「macOSを再インストール」

リストア(Total 1.5h)

システム設定を変える

システム環境をいじくって、トラックパッドやキーボードなどの設定を自分好みに変更します。
Macのシステム設定まとめ

Bitwardenをインストール

AppStoreから。パスワードがわからないと何も始まらないので

Chromeをインストール

グッバイSafari。Googleアカウントにログイン→同期して、ブックマークや拡張機能を復活させましょう。

Dropboxをインストール

これでいろいろと復元できます。
インストールしたらすぐに環境設定を開き、

  • Brewfile
  • Mackupディレクトリ

以外を同期しないようにします。その他のディレクトリは一通り設定が終わったあとで一気に同期しましょう。
※PCの容量に困らない限り、スマートシンクは設定しない。
 

Homebrewをインストール

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Finderのサイドバーに表示する項目を整理する

  • Dropbox
  • ダウンロード
  • ホームディレクトリ
  • スクリーンショット
  • iCloud Drive
  • Macintosh HD

あたりを表示

その他アプリを一括でインストール

$ cd ~/Dropbox
$ brew bundle
Brewfile
cask_args appdir: "/Applications"
brew 'git'
tap 'heroku/brew'
brew 'heroku'
brew 'mackup'
brew 'mas'
brew 'nodenv'
brew 'rbenv'
brew 'ruby-build'

cask 'adobe-creative-cloud'
cask 'alfred'
cask 'biscuit'
cask 'docker'
cask 'tableplus'
cask 'transmit'
cask 'visual-studio-code'

# cask 'dropbox'
# cask 'google-chrome'
# cask 'karabiner-elements'

mas 'Kindle', id: 405399194
mas 'LINE', id: 539883307
mas 'Magnet', id: 441258766

# mas 'Bitwarden', id: 1352778147

Dropboxに保存してあるBrewfileを元に必要なアプリを全て揃えます。

設定ファイルを復元

(2023/10/15追記)
mackupでエラーが出ました。
https://github.com/lra/mackup/pull/1949
このPRが取り込まれるまでは動かなそうなので、自分でScriptを組むことにしました。

setup-dotfiles.sh

$ ~/Dropbox/setup-dotfiles.sh
mackup使ってた時代のやり方(クリックで表示)
$ cd ~/Dropbox
$ mackup restore

これでほぼ全てのアプリの設定が復元されます。.vimrcとか.zshrcとかも。
vscodeの拡張機能はデフォルトではサポートされていませんが、独自に定義して管理できるようにしています。

~/.mackup/vsex.cfg
[application]
name = vsex

[configuration_files]
.vscode/extensions

Dockを整理

  • 不要なアプリを削除
  • 必要なアプリを追加
  • アイコンのサイズを小さめに
  • 「Dock環境設定」>「Dockを自動的に表示/非表示」

Dropboxの残りのファイルを同期

このあたりで、先ほど行った同期するディレクトリを制限する設定を解除しちゃいましょう。

デフォルトのアプリを設定

html, css, js, html.erb, csv, txt, Dockerfile等を開くデフォルトのアプリをVSCodeに設定します。

$ touch hoge.html hoge.css hoge.js hoge.html.erb hoge.csv hoge.txt

「Finder」>「ファイルを右クリック」>「情報をみる」>「このアプリケーションで開く」>「全てを変更」

各種アプリの動作確認

アプリがちゃんと動くか確かめます。
Mackupで設定を管理できないアプリもあるので、その場合は個別に設定をしましょう。

Adobe Creative Cloud

起動→ログインして
イラレとXDをインストール

Alfred

  • Ctrlのダブルタップで起動できるように
  • 検索バーの帽子マークを非表示(appearances>options>how he looks)
  • 検索バーのショートカットを非表示(appearances>options>how he looks)
  • メニューバーの帽子マークを非表示(appearances>options>how he looks)
  • 出現場所をやや下に(appearance>options>図から変更)
  • 起動時に入力モードを半角英数にする(appearances>options>Focusing>Compatibility mode
    →advanced > force key board > abc)
  • PowerpackメニューからPowerpackを有効化
  • クリップボードの履歴を記録(features>clipbord history>keep plain text)
  • clipboard履歴の初回利用時、アクセシビリティの設定変更を要求されるので従う

最初は同期の機能を使おうと思いましたが、うまく連携ができなくてやめました。大した設定していないので、手動でやります。

Biscuit

最初にエクスポートしておいた設定ファイルをインポート。

Docker for Mac

システムに実行の許可を出す。

GoogleChrome

常に表示する必要の無い拡張機能を隠す。Bitwardenをダークテーマに。

LINE

ログイン

Magnet

アクセシビリティ周りの設定。ログイン時に起動する設定。

TablePlus

接続先のパスワードはMackupで管理されていないよう。手動でパスワードを再入力する必要あり。

Todoist

Googleアカウントでログイン

Transmit

Mackupでは接続先の情報を管理できない。予め書き出して置いた移行用のファイルを実行。
また、こちらもパスワードは引き継がれないのでメモから復元

「お気に入り」>「読み込み」>「Transmit」

VScode

サイドバーからデバッグのマークを消す&並び替え

Orbstack

Brewfileでうまくインストールできなかったので、手動で

ZOOM

Brewfileでインストールするとエラーが発生するので、ブラウザから手動でインストール

よく使うサイトにログイン

  • Amazon
  • GitHub
  • Pocket
  • Qiita
  • Twitter
  • はてな
  • note

sshキーのパーミッションを変更

$ cd ~/Dropbox/Mackup
$ chmod 700 .ssh
$ cd .ssh
$ chmod 600 dir_name/id_rsa # 秘密鍵の数だけ繰り返す

node.jsの設定

Dropboxに保存してあるnodenvの設定ファイル郡にシンボリックリンクを貼ります。

$ rm -rf ~/.nodenv
$ ln -sf ~/Dropbox/settings/.nodenv ~/.nodenv

nodenvを使ってnode.jsをインストールします。

$ nodenv install --list # インストールできるバージョンを確認
$ nodenv install 14.5.0 # 最新バージョンをインストール
$ nodenv rehash
$ nodenv global 14.5.0 # インストールしたバージョンをデフォルトに設定
$ nodenv versions # 利用できるバージョン一覧

node modulesのインストール

$ npm install -g yarn
$ yarn -v
$ npm install -g gatsby-cli
$ gatsby -v

開発環境のコンテナを作成

各プロジェクトのルートディレクトリに移動し

$ docker-compose build
$ docker-compose up -d
RubyonRailsの場合
$ docker-compose exec <サービス名> /bin/bash
$ rails db:create
$ rails db:migrate
$ rails db:seed

Railsアプリをcloneした後にDocker上で動かすまで

運用中のサービスの開発環境のデータをローカルに反映

TablePlusでデータをCSVでダウンロードして、ローカルのDBにアップロード

日常的に気を付けること

  • アプリのインストールはBrewfileを使う
  • アプリを追加した時には、そのアプリの設定の管理方法を考える(Mackupで管理できないなら個別にバックアップ)
  • 大切なファイルはDropboxで管理
  • DBの接続先が増えた時、Bitwardenに記録
  • FTPの接続先が増えた時、TransmitのバックアップをDropboxに保存+パスワードをBitwardenにメモ
  • Biscuitで管理するアプリが増えたら、設定をエクスポートしてDropboxに保存

このあたりを意識していれば、いつPCがぶっ壊れても(データ的には)割と大丈夫。
そんなに大変じゃないはず。

注意点、ハマったところ

Mack up、すごく便利なのですが、最初は何がバックアップできていて何ができていないかがよくわからず苦労しました。
vscodeの拡張機能、preztoのプログラム本体、FTPやDBのパスワードなどはデフォルトではバックアップされません。
自分で設定をカスタマイズすることで、パスワード以外はバックアップすることができました。

めんどくさがらずに公式の公式のドキュメントを読むとかなり理解が進みます。
英語ですがすごくわかりやすく説明されているので、ぜひ読んでみてください。

あと、スピードを追求する場合はDiskMaker Xとかで起動ディスクを作るともっと時間を短縮できるみたいです。

感想

BrewfileMack upがやばい。またDockerのありがたみも強く実感しました。
この環境を2018年に完成させていた@saboyutaka さんはまじでイケてると思う。

参考

22
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
21