😽

Mackup で環境構築を簡素化

2024/05/12に公開

はじめに

Mackup とは、設定ファイルをバックアップ / リストアするツールです。例えば、新しい Mac を購入した際に古い Mac からアプリケーションの設定データを簡単に新しい Mac に移行できます。

https://github.com/lra/mackup

インストール

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

$ brew install mackup

サポートしているストレージ

Mackup はこちらのストレージをサポートしています。

https://github.com/lra/mackup?tab=readme-ov-file#supported-storages

サポートされているアププリケーション

サポートされているアプリケーションはこちらです。なお、リストにあるからといって自動的にバックアップされるわけではありません。必要に応じて設定ファイルを作成します。

https://github.com/lra/mackup?tab=readme-ov-file#supported-applications

設定ファイル

こちらがデフォルトで mackup backup で利用される設定ファイルです。

https://github.com/lra/mackup/tree/master/mackup/applications

デフォルトのルールが十分でない場合は、設定を追加します。設定ファイルについてはこちらに説明があります。

https://github.com/lra/mackup/blob/master/doc/README.md#configuration

iTerms2

こちらがデフォルトの設定ファイルです。

https://github.com/lra/mackup/blob/master/mackup/applications/iterm2.cfg


2024 年 5 月 12 日現在、mackup restore でのバックアップ保存先にデータが保存されていない状態で、はじめて mackup backup でバックアップする際にエラーが発生します。こちらが issue です。

https://github.com/lra/mackup/issues/1925

以下のように name を上記のデフォルトルールと同じ名前を指定することで設定を上書きできます。これでエラーは出なくなります。

$ mkdir ~/.mackup
$ vi ~/.mackup/iterm2.cfg
~/.mackup/iterm2.cfg
[application]
name = iTerm2

[configuration_files]
Library/Preferences/com.googlecode.iterm2.plist
Library/Application\ Support/iTerm2/DynamicProfiles

VSCode

こちらがデフォルトでの設定ファイルです。

https://github.com/lra/mackup/blob/master/mackup/applications/vscode.cfg

デフォルトでは、VSCode の設定ファイルはバックアップされますが、拡張機能はバックアップされません。以下のようにカスタムルールを作成することでバックアップされるようになります。

$ vi ~/.mackup/vscode-extensions.cfg
~/.mackup/vscode-extensions.cfg
[application]
name = vscode-extensions

#バックアップしたいファイルのパス
[configuration_files]
.vscode/extensions

バックアップのドライラン

Mackup のバックアップのドライランを実行できます。ドライランを実行することで、実際にバックアップされるファイルを確認できます。

$ mackup --dry-run --verbose backup
--- 1password-4 ---
Doing nothing
  /Users/hayato94087/Library/Preferences/com.agilebits.onepassword4.plist
  does not exist
Doing nothing
  /Users/hayato94087/Library/Preferences/ws.agile.1Password.plist
  does not exist

--- 2do ---
Doing nothing
  /Users/hayato94087/Library/Preferences/com.guidedways.TodoMac.plist
  does not exist

--- ack ---
Doing nothing
  /Users/hayato94087/.ackrc
  does not exist

--- act ---
Doing nothing
  /Users/hayato94087/.actrc
  does not exist

バックアップ

Mackup は設定ファイルをバックアップします。

$ mackup backup

バックアップ先に保存されるか確認します。

$ tree -da ~/Dropbox/Mackup


なお、バックアップ実施後は、バックアップ対象のファイルはシンボリック化されます。例えば、/Users/hayato94087/.vscode/extensions@/Users/hayato94087/Dropbox/Mackup/.vscode/extensions にシンボリック化されます。

 ~/.vscode  ls -l /Users/hayato94087/.vscode

total 8
drwxr-xr-x   5 hayato94087  staff   160  5 12 15:52 ./
drwxr-x---+ 45 hayato94087  staff  1440  5 12 17:04 ../
-rw-r--r--   1 hayato94087  staff   815  5  9 16:27 argv.json
drwxr-xr-x   2 hayato94087  staff    64  5  9 16:24 cli/
lrwxr-xr-x@  1 hayato94087  staff    52  5 12 15:52 extensions@ -> /Users/hayato94087/Dropbox/Mackup/.vscode/extensions

リストア

Mackup で設定ファイルをリストアします。

$ mackup restore

まとめ

Mackup は設定ファイルをバックアップ / リストアするツールです。設定ファイルをバックアップすることで、新しい Mac に環境を簡単に移行できます。

Discussion