Wordmoveでrsync: empty remote が出て同期できなくてハマった

macOS で wordmove 実行時の「rsync: empty remote host」エラーの対処法

原因

macOS のアップデート等により、以下のような状況が発生していた:

  • macOS に標準搭載の rsyncopenrsync)は非常に古く、バージョン 2.6.9 相当
  • wordmove はこの古い rsync を利用しようとしてエラーを起こす
  • Homebrew で新しい rsync(3.x系)をインストールしても、パスの優先順位の関係で古い方が呼ばれていた
  • wordmove -dは問題ないがwordmove -tなどでエラー

解決手順

  1. Homebrew で最新の rsync をインストール
    brew install rsync
    • Homebrew 版 rsync をシステムにリンク
      brew link rsync
    • rsync が正しいパスにあるか確認
      which rsync
      # => /usr/local/bin/rsync になっていればOK
    • バージョン確認(3.x 以上が必要)
      rsync --version
      # => rsync version 3.x.x
    • もしバージョンが変わっていない場合の対処 macOS の標準の古い rsync が優先されている可能性があるので、シェルの設定ファイルに以下を追加し、brew 版のパスを優先させる:
      # ~/.zshrc もしくは ~/.bash_profile に追記
      export PATH="/usr/local/bin:$PATH"
      その後、設定を反映させる:
      source ~/.zshrc # or source ~/.bash_profile
      再度 which rsyncrsync --version を確認して、 /usr/local/bin/rsync かつ 3.x 以上になっていることを確認。
    • Wordmove を再実行
      wordmove pull -e production -t

    この対応で rsync: empty remote host 問題は解消するはずです 💪