web-dev-qa-db-ja.com

リモートrsyncがパスにある場合、rsyncにはrsync-pathが必要です

リモートrsyncがパスにある場合でも、rsyncが--rsync-pathフラグを必要とする理由について、私はかなり混乱しています。

考慮してください:

$ rsync -avze 'ssh -p 22' --delete public/ [email protected]:~/public_html
bash: /usr/local/bin/rsync: No such file or directory
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(601) [sender=3.0.7]

次に--rsync-pathを追加してみました

$ rsync -avze 'ssh -p 22' --rsync-path=/usr/bin/rsync  --delete public/ [email protected]:~/public_html
sending incremental file list
...

したがって、最初のrsyncは/ usr/local/binでrsyncを検索していたため成功しませんでしたが、-rsync-pathを使用してrsyncの明らかなパスを渡すとすぐに機能します。

どうしてこれなの? (このコマンドラインは、octopressのrake deployによって発行されたものです)

11
Paulo Matos

私の記憶はこれでかなりぼやけていますが、これが起こっていた理由は、ある時点でGNU stow on rsyncを使用し、rsyncsの場所を混乱させるシンボリックリンクを作成したためです。これは多くの毛を引っ張った後、並べ替えられました。私は今、はるかに軽い髪ですが、一方で私はrsyncが機能しています。あなたが私に尋ねたら、それは勝利でしょう。

2
Paulo Matos