新規マシン導入前の下準備(続き) - 産技高専における macOS 環境の構築(2)

macOSSetting macOS Homebrew 2019年 5月 24日

mackup の設定

mackup は各種設定ファイルを iCloud や Dropbox などに保存しておき,複数のマシンで同期する仕組みである. mackup を用いることで,Unix 関係の設定ファイルも同期が可能ではある. ただし,こちらは直接エディタで記述するし,基本的に git で管理したい. そのため,dotfiles の中に直接保存し,deploy.sh で同期するようにしている.

mackup で対応できるアプリはかなり多い.詳細は mackup のアプリケーションリスト を参考にすればよい.今回は iCloud に,iTerm2 の設定だけを同期するテストをやってみる(具体的に何を同期するかは後でゆっくりと決める). mackup の設定手順を以下に記録しておく.

  1. まずは設定がちゃんとされている rMBP の方で作業する. mackup の設定ファイルはまだないので,dotfiles/.mackup.cfg に最低限のものだけを記載する. デフォルトで設定されている Dropbox は3台までという制限が入ってしまったので, ここでは iCloud を engine とした.
    [storage]
    engine = icloud
    
    [applications_to_sync]
    iTerm2
  2. このファイルをリポジトリにコミットして,bitbucket に push しておく
  3. mackup の設定ファイルをホームに置きたいので,rMBP 側でも bootstrap.sh を動かしてみる.ソフトは全てインストールされているので,特に時間もかからず終わるはず.
    ~/dotfiles/bootstrap.sh
  4. mackup の設定ファイルがホームに置かれたので,rMBP 側で mackup による backup を実行する.iCloud にフォルダがないと指摘されているので,Yes として作成した.
    $ mackup backup
    Mackup needs a directory to store your configuration files
    Do you want to create it now? </Users/hkob/Library/Mobile Documents/com~apple~CloudDocs/Mackup> <Yes|No>Yes
    Backing up Library/Preferences/com.googlecode.iterm2.plist ...
  5. 後は mini 側でも同様に ~/dotfiles/bootstrap.sh を実行すればよい.

initialize.sh の設定

最後に後処理で実施したいスクリプトを記載する.とりあえず今のところ気になるのは,TeX Live/Mac のヒラギノ設定くらいだろうか.

  1. まずやりたいことを以下のように記載してみた.
    #!/usr/bin/env bash
    
    set -e
    
    TLMGR_REPOSITORY=http://ftp.jaist.ac.jp/pub/CTAN/systems/texlive/tlnet
    
    echo "TeX Live update (require password)"
    sudo tlmgr option repository $TLMGR_REPOSITORY
    sudo tlmgr update --self --all --no-persistent-downloads
    
    MACTEX_SETTLED="$HOME/.mactex_settled"
    
    if [ ! -e "$MACTEX_SETTLED" ]; then
      sudo tlmgr repository add http://contrib.texlive.info/current tlcontrib
      sudo tlmgr pinning add tlcontrib '*'
      sudo tlmgr install japanese-otf-nonfree japanese-otf-uptex-nonfree ptex-fontmaps-macos cjk-gs-integrate-macos
    
      sudo cjk-gs-integrate --link-texmf --cleanup
      sudo cjk-gs-integrate-macos --link-texmf
    
      sudo mktexlsr
    
      sudo kanji-config-updmap-sys --jis2004 hiragino-highsierra-pron
      touch $MACTEX_SETTLED
    fi
  2. 最初に rMBP で動くことを確認してみた.こちらも MacTeX 2019 を入れたばかりだったので,正しく日本語設定できることを確認できた.
  3. これで問題なしと mini 側で実行するとうまく動かなかった.sudo しているので,http_proxy が引き継がれないためだ. env_keep を /etc/sudoers に追記をすればよいのだが,ここまでの自動化はちょっと怖いので bootstrap.sh の頭でチェックだけ行い,ユーザに visudo してもらうことにした.
    #!/usr/bin/env bash
    
    echo "check env_keep(http_proxy, https_proxy) in /etc/sudoers (require password)"
    ENV_KEEP=$(sudo grep http_proxy /etc/sudoers)
    if [ "X${ENV_KEEP}" = "X" ]; then
      echo '======'
      echo 'Please add the following two lines in /etc/sudoers using "sudo visudo"'
      echo 'Defaults    env_keep += "http_proxy"'
      echo 'Defaults    env_keep += "https_proxy"'
      exit
    fi
    
    set -eu
    
    # ここから先は同じ
    DOTPATH=$HOME/dotfiles

これで全て完了した. mackup に登録すべきものの精査をするとともに,dotfiles も手を入れたいと思う. 後は新しい MacBook Pro が届くのを待つのみ.