そろそろMacの買い替えの時期なので、以下のものを使って個人のMacをバックアップしつつ同じ開発環境を別のMacへと移行できるよう準備をする。
- homebrew
- homebrew-bundle
- homebrew-file
- mas
- mackup + Dropbox
- atom
- apm
RubyGemとかもあるけどgemはプロジェクト毎にbundle installsすればいいよね、ということで除外。なのでeditorのAtom, dotfiles, brew設定が移行できればよいかな、と。
Mac 環境構築の自動化 2015年末版 ( homebrew + homebrew-cask + homebrew-brewdle + mackup + crontab )にて同様のことをされているのでこちらも参考に。こちらではcronでバックアップを自動でとっています。
でこちらではこれに加え、私が普段使っているAtomのパッケージの再構築、さらにHomebrewでApp Storeを扱えるように調査しました。
# 2016/8/31 VSCodeも扱えるように追記しました。
Atom
まずはeditorのAtomのパッケージから。atom packages managerのapmを使ってインストールしたpackagesを管理する。Atomが入っていれば、"Atom > Install Shell Commands"からapmが導入可能。
まずはインストール済みパッケージをリスト化する。
$ apm list -bi > Atomfile
でデフォルトで入っているものを除いた各々のユーザーがインストールしたものだけ(-i)を余計な修飾無しで(-b)リスト化。以下の様なものが出力される。
atom-dynamic-macro@1.1.4
autocomplete-swift@1.0.2
git-plus@5.13.0
language-swift@0.4.0
linter@1.11.3
linter-erb@1.0.2
linter-javac@1.7.0
linter-ruby@1.2.2
linter-swiftlint@1.1.0
run-time-syntax@13.37.0
run-time-ui@13.37.3
script@3.5.2
seti-ui@0.8.1
でatomのインストール済みパッケージのリストがAtomfileへと出力される。で、そのAtomfileを移行先へDropboxやらで送り、
$ apm install --packages-file Atomfile
これだけでOK. 次に紹介するmackupでもAtomのバックアップをとってくれるのだが、https://github.com/lra/mackup/blob/master/mackup/applications/atom.cfg をみればわかるが、もちろんパッケージはないので自分で用意する必要がある。
mackup + Dropbox
次にmackupをインストールする。こいつはMacのApplicationやdotfilesをDropboxなどに保存、再構築してくれるナイスなやつです。この程度なら私でも簡単にかけますが、これのいいところはとても簡単なところ。
$ brew install mackup
でインストール。
$ mackup backup
でバックアップ。
$ mackup restore
で再構築。簡単!
homebrew
ここがメインです。brewでいろいろ入れたり、brew-caskで.appまで入れたりしていると、App Storeのものまで管理したくなってくるのが自然。で調査してみたところ、https://github.com/argon/mas なるものがApp Storeを扱ってくれるようで、それを利用してBrew-fileでApp Storeのアプリも含めてMacを完全自動初期化のなかで開発されたbrew-fileを使うことで、App Storeを含めて管理できるようになります。
brew-file: App Storeも管理しよう
まずはインストール。
$ brew install argon/mas/mas
$ brew install rcmdnk/file/brew-file
としてやると、"brew file"コマンドが打てるようになる。結構高機能なので気になった方は"brew file help"で調べてみてください。で、インストール後は
$ brew file init
としてやるとデフォルトでは ~/.brewfile/Brewfile に出力される。repositoryとか聞かれるけどNOでいい。Brewfileの一番最後に
# App Store applications
appstore 422304217 Day One
appstore 408980954 GarageBand
appstore 409183694 Keynote
appstore 409183694 Keynote
appstore 896624060 Kobito
appstore 409203825 Numbers
appstore 409203825 Numbers
appstore 409201541 Pages
appstore 409201541 Pages
appstore 568494494 Pocket
appstore 405580712 StuffIt Expander
appstore 425424353 The Unarchiver
appstore 585829637 Todoist
appstore 497799835 Xcode
のような感じで appstore のものが出力されているはずです。
そして再構築は、
$ brew file install Brewfile
としてやるだけ。
やはり簡単。
VSCode (2016/8/31追加)
最近AtomよりVSCodeを使っている時間のほうが長くなってきましたので、VSCodeのextensionについてもまとめます。
まずはvscodeをコマンドラインから使えるようにしないとどうしようもないので
- http://qiita.com/naru0504/items/c2ed8869ffbf7682cf5c
-
https://code.visualstudio.com/docs/setup/osx
などを参考に、コマンドラインから呼び出すcode
コマンドをインストールしてください。バックアップの有無はともかく、すごい便利なので使えるようにしておくことをおすすめします。
ではcode
コマンドが使えるようになりましたら、以下のコマンドを入力してください。
$ code --list-extensions > vscode-extensions.txt
コマンドを読んだ如くのまま、これだけでインストール済みのextensionのリストが取得できます。以下の様な非常に簡単なものです。
WakaTime.vscode-wakatime
chrisdias.vscodeEditorConfig
eg2.tslint
johnpapa.Angular1
justinjames.ionic1-snippets
mkaufman.HTMLHint
vsmobile.cordova-tools
zhuangtongfa.Material-theme
このファイルを何処か別のところへ退避させておき、復元したくなった場合には以下のコマンドを入力します。
$ cat ./vscode-extensions.txt | while read line
do
code --install-extension $line
done
ここでatomの場合と少し違うのは、code --install-extension
はファイルを指定できないため中身を取り出してやる必要があるという程度でしょうか。
以上、AppStoreのものを含めての自動環境構築でした。というか買い換えたいので早くNew Macbook Airください。お願いします。 9/7の発表が楽しみですね。