rsync membutuhkan rsync-path ketika remote rsync ada di path

11

Saya cukup bingung mengapa rsync memerlukan flag --rsync-path bahkan ketika remote rsync ada di path.

Mempertimbangkan:

$ 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]

kemudian saya mencoba menambahkan --rsync-path

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

Jadi, rsync pertama tidak berhasil karena sedang mencari rsync di / usr / local / bin tetapi segera setelah saya melewati jalan yang jelas untuk rsync menggunakan --rsync-path, maka ia berhasil.

Kenapa ini? (baris perintah ini adalah yang dikeluarkan oleh rake deploy di octopress)

Paulo Matos
sumber
Apakah Anda memiliki perintah paksa di ujung tujuan? Adakah sesuatu dalam .bashrc atau .profile yang mungkin mengatur variabel lingkungan lokal?
SmallClanger
$ cat ~/.bashrc | grep PATHtidak mengembalikan apa pun.
Paulo Matos
Jika Anda hanya ssh dalam diri Anda dan menjalankan which rsyncapa yang Anda dapatkan?
SmallClanger
2
$ ssh [email protected] which rsynckembali/usr/bin/rsync
Paulo Matos
Aneh. Mencengkeram sedotan, sekarang: Apakah mungkin rsync lokal aliased ke rsync --rsync-path(atau beberapa bungkus lokal lainnya)?
SmallClanger

Jawaban:

2

Ingatan saya sekarang cukup kabur tentang ini tetapi alasan ini terjadi adalah karena saya menggunakan GNU stow on rsync di beberapa titik dan membuat beberapa symlink yang membingungkan rsynclokasi. Ini disortir setelah banyak menarik rambut. Saya sekarang jauh lebih ringan pada rambut tetapi di sisi lain saya punya pekerjaan rsync. Itu pasti menang jika kau bertanya padaku.

Paulo Matos
sumber