macOSSetting macOS Homebrew 2019年 5月 23日
研究に使っていた 15inch MacBook Pro (Retina, Mid 2012) が12月にオブソリュート製品の仲間入りした. SSD は 750GB あるし,RAM の 16GB あるので,未だに現役で使えるものではある(研究室の iMac 4K よりも使い勝手がよい). これはこれで余生の使い道はありそうだが,やはりメインマシンは修理ができるマシンにしておきたいということで,15inch の MacBook Pro (2019) を購入させていただいた.
これまで研究用マシンと研究室のメインマシンを分けていたため,ファイルの管理が面倒であった.そのため,今回購入した MacBook Pro は研究用と研究室メインマシンを兼ねる運用をすることにする.
MacBook Pro は大学に行く時には持参するので,研究室の教職員VLANに接続できるマシンは一台残す必要がある(出張先でも校務支援システムのトラブル対応を行うことがあるためである). そこで,場所を取る iMac 4K の代わりに,以前使っていた Mac mini (Late 2012) を引っ張り出してセッティングする(iMac 4K はもったいないが学生へのお下がりに).
MacBook Pro の発注はしたもののしばらくは届かないので,先に Mac mini の設定をやってしまう. Mac mini は ssh さえ動けばよいのだが,万一 MacBook Pro にトラブルがあった時の代替にも使えるよう同じ環境はセッティングしておくべきだろう. MacBook Pro が届いた時にセッティングが速やかに終わるように,Mac mini でリハーサルを行うことにする.
参考にしたのは dotfiles類をbrew bundleを使ってきれいにするのにやったこと および macOSでの開発環境を全部Docker化したらリストア時間が1時間半になった である. 以前,Brewfile は一度潰れかけた気がしたのだが,最近プラグインの形で使えるようになっているとのことらしい. これまでやっていた ansible での設定よりも簡単にできそうな感じなので,こちらに乗り換えてみる. 現状では研究用 MacBook Pro (以下,rMBP) の方はそれなりに環境が揃っているので,この環境を Mac mini (以下,mini) 側に適用できるように 前者のリンクの dotfiles を構築してみる.
dotfiles については,以前からリポジトリ化をしていた.これまでは本当に dotfiles だけの同期のためだったが,今回は Homebrew, Homebrew cask, App Store までも含めて同期することにする. まずは,真似から始めるということで, bootstrap.sh を使わせていただく.直すのは8行目の dotfiles のパスだけでよさそう. 以下,作業手順を列記していく.
vi bootstrap.sh; chmod +x bootstrap.sh
bash -c "$(curl -L https://bitbucket.org/hkob/dotfiles/raw/HEAD/bootstrap.sh)"
xcode-select --install
#!/usr/bin/env bash
DOTPATH="$HOME/dotfiles"
if [ ! -e "$DOTPATH" ]; then
echo "Error: Directory $DOTPATH does not exist."
exit 1
fi
cd "$DOTPATH" || exit 1
for file in .??*; do
[[ "$file" = ".git" ]] && continue
[[ "$file" = ".DS_Store" ]] && continue
ln -fvns "$DOTPATH/$file" "$HOME/$file"
done
[[ -z $XDG_CONFIG_HOME ]] && XDG_CONFIG_HOME=$HOME/.config
mkdir -p "$XDG_CONFIG_HOME"
~/dotfiles/bootstrap.sh
Error: No Brewfile found
となって停止した.
brew tap homebrew/bundle
brew bundle dump
# homebrew and cask
brew bundle
echo
# mas
cd mas_only
http_proxy_back=$http_proxy
https_proxy_back=$https_proxy
unset http_proxy
unset https_proxy
brew bundle
export http_proxy=$http_proxy_back
export https_proxy=$https_proxy_back
unset http_proxy_back
unset https_proxy_back
cd ..
echo
tap "buo/cask-upgrade"
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/core"
tap "homebrew/services"
tap "theseal/ssh-askpass"
brew "mas"
cask "1password"
brew "mackup"
cask "xquartz"
brew "libyaml"
brew "openssl"
brew "python"
brew "ansible"
brew "gettext"
brew "libtiff"
brew "libevent"
brew "openjpeg"
brew "ffmpeg"
brew "fish"
brew "ghostscript"
brew "gibo"
brew "gnuplot"
brew "graphviz"
brew "netpbm"
brew "ilmbase"
brew "imagemagick"
brew "jxrlib"
brew "macvim"
brew "mitmproxy"
brew "nkf"
brew "tmux"
brew "overmind"
brew "pandoc"
brew "pdflib-lite"
brew "plantuml"
brew "telnet"
brew "wget"
brew "theseal/ssh-askpass/ssh-askpass"
cask "adobe-acrobat-reader"
cask "alfred"
cask "aquaterm"
cask "cd-to"
cask "chromedriver"
cask "cmd-eikana"
cask "docker"
cask "dropbox"
cask "eclipse-java"
cask "findings"
cask "firefox"
cask "google-chrome"
cask "grandperspective"
cask "java"
cask "letterfix"
cask "libreoffice"
cask "logisim"
cask "mactex"
cask "maczip4win"
cask "mendeley"
cask "mysqlworkbench"
cask "omnifocus"
cask "omnigraffle"
cask "omniplan"
cask "osxfuse"
cask "papers"
cask "qlstephen"
cask "skim"
cask "sourcetree"
cask "vlc"
cask "vmware-fusion"
cask "xmind"
mas "ibooks-author", id: 490152466
mas "type2phone-bluetooth-keyboard", id: 472717129
mas "hardwaregrowler", id: 475260933
mas "growl", id: 467939042
mas "ihex-hex-editor", id: 909566003
mas "verve", id: 1436374224
mas "quiver-take-better-notes", id: 866773894
mas "reeder-3", id: 880001334
mas "microsoft-remote-desktop-10", id: 1295203466
mas "kindle", id: 405399194
mas "slack", id: 803453959
mas "imovie", id: 408981434
mas "be-focused-pro-focus-timer", id: 961632517
mas "tnefs-enough", id: 986621173
mas "coteditor", id: 1024640650
mas "apple-remote-desktop", id: 409907375
mas "affinity-designer", id: 824171161
mas "day-one", id: 1055511498
mas "virus-scanner-plus", id: 595374522
mas "notability", id: 736189492
mas "spark", id: 1176895641
mas "ithoughtsx-mindmap", id: 720669838
mas "icircuit", id: 454347770
mas "todoist", id: 585829637
mas "Numbers", id: 409203825
mas "Keynote", id: 409183694
mas "Pages", id: 409201541
mas "Xcode", id: 497799835