Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Add rsync to git bash for windows
@SherylHohman
Copy link

SherylHohman commented Jul 23, 2019

I cannot unpack the .xz file in Git Bash for Windows:
$ tar -xf rsync-3.1.3-1-x86_64.pkg.tar.xz

tar: .PKGINFO: Cannot open: Permission denied
tar: .BUILDINFO: Cannot open: Permission denied
tar: .MTREE: Cannot open: Permission denied
tar: usr: Cannot mkdir: Permission denied
tar: usr: Cannot mkdir: Permission denied
tar: usr/bin: Cannot mkdir: No such file or directory
tar: usr: Cannot mkdir: Permission denied
tar: usr/lib: Cannot mkdir: No such file or directory
tar: usr: Cannot mkdir: Permission denied
tar: usr/share: Cannot mkdir: No such file or directory
tar: usr: Cannot mkdir: Permission denied
tar: usr/share/man: Cannot mkdir: No such file or directory
tar: usr: Cannot mkdir: Permission denied
tar: usr/share/man/man1: Cannot mkdir: No such file or directory
tar: usr: Cannot mkdir: Permission denied
tar: usr/share/man/man5: Cannot mkdir: No such file or directory
tar: usr: Cannot mkdir: Permission denied
tar: usr/share/man/man5/rsyncd.conf.5.gz: Cannot open: No such file or directory
tar: usr: Cannot mkdir: Permission denied
tar: usr/share/man/man1/rsync.1.gz: Cannot open: No such file or directory
tar: usr: Cannot mkdir: Permission denied
tar: usr/lib/rsync: Cannot mkdir: No such file or directory
tar: usr: Cannot mkdir: Permission denied
tar: usr/lib/rsync/rrsync: Cannot open: No such file or directory
tar: usr: Cannot mkdir: Permission denied
tar: usr/bin/rsync.exe: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors

sh bin $ sudo tar -xf rsync-3.1.3-1-x86_64.pkg.tar.xz

bash: sudo: command not found

Any suggestions?

@hisplan
Copy link
Author

hisplan commented Jul 24, 2019

I don't have a WIndows machine with me right now, but since the error you're getting is a permission issue, you might want to try extracting the tar file in the directory where you have a full permission (e.g. Downloads) then move the executable to where git is installed.

@SherylHohman
Copy link

SherylHohman commented Jul 26, 2019

@hisplan That worked! Thank You :-)

@MoonLightElf
Copy link

MoonLightElf commented Jan 17, 2020

I recommend this question and answer. Then install fish via PacMan in msys2.
https://stackoverflow.com/questions/32712133/package-management-in-git-for-windows/60611888#60611888

#how to execute rsync

 chmod +x /usr/bin/rsync.exe
/usr/bin/rsync.exe <source_folder> <target_folder>

@aisteron
Copy link

aisteron commented Mar 5, 2020

rsync
rename 76008178-1fbb4d80-5f07-11ea-9c47-31d8e84f5dd0.jpg -> rsync.exe

@rshad
Copy link

rshad commented Apr 26, 2020

You saved my day. Thank you!

@LwServices
Copy link

LwServices commented May 3, 2020

for me worked C:\Program Files\Git\cmd\

@mattirish
Copy link

mattirish commented May 18, 2020

Worked great using @jolastar's comment for the installation directory. Thanks, every1!

For me the location which worked was C:\Program Files\Git\usr\bin i.e. more generally %ProgramFiles%\Git\usr\bin as mentioned here and here for example.

@charlie-cadmv
Copy link

charlie-cadmv commented Sep 21, 2020

Git Bash's root directory maps to the root of your Git SCM installation which may be in %programFiles% or it may not.
You can run cygpath -w / to get Git Bash to tell you where it's running from.
Even if you're running PortableGit like I am, it will print out the Windows equivalent path of Git's root, which is the directory where you should be extracting the .tar.xz file using the tar -xf command.
But why bother with the Windows path at all?
You can do everything from within Git Bash!

#Make a temporary directory
tempDir=$(mktemp -d)
#go into that dir
pushd "$tempDir"
#download the file using its original name
curl -O http://www2.futureware.at/~nickoe/msys2-mirror/msys/x86_64/rsync-3.1.2-2-x86_64.pkg.tar.xz
#cd to Git Bash root directory (which is your Git directory, so you don't need to look it up or assume it's in %programfiles%)
cd /
#extract the files to their proper places (all of them, not just rsync.exe)
tar -xf "${tempDir}/rsync-3.1.2-2-x86_64.pkg.tar.xz"
#get back to your original directory
popd
#clean up that temp directory and the downloaded .tar.xz file
rm -rf "$tempDir"
#see that rsync is in the path now
which rsync

@ahmednrana
Copy link

ahmednrana commented Oct 16, 2020

Life saver

@llraj
Copy link

llraj commented Oct 21, 2020

@hisplan Thank you very much!

@LeonT-A
Copy link

LeonT-A commented Nov 11, 2020

Thanks @charlie-cadmv, your solution worked great!

I was extracting the .xz manually, but simply dropping the .exe to the right folder wasn't working. I was getting errors about missing .dll files.

Using the tar command everything is working great. My guess is that the tar command is smart enough to know where to put each file it extracts, even though I didn't find any .dll files inside the .xz (Maybe they were hidden deep?).

I really gotta learn the difference and how to work with all these funky file source files.

P.S
Link is dead, but you can find the .xz file here: http://www2.futureware.at/~nickoe/msys2-mirror/msys/i686/

@fotcorn
Copy link

fotcorn commented Jan 7, 2021

Link no longer works, just search for "rsync" in the official msys2 repo instead: http://repo.msys2.org/msys/x86_64/
The newest version requires two additional packages to make it work: libxxhash and liblz4.
The packages are now compressed with zstd, unpack them inside git bash with zstd -d <package> or use 7zip with ZStandard support: https://github.com/mcmilk/7-Zip-zstd/releases

@ctrongminh
Copy link

ctrongminh commented Jan 24, 2021

Link no longer works, just search for "rsync" in the official msys2 repo instead: http://repo.msys2.org/msys/x86_64/
The newest version requires two additional packages to make it work: libxxhash and liblz4.
The packages are now compressed with zstd, unpack them inside git bash with zstd -d <package> or use 7zip with ZStandard support: https://github.com/mcmilk/7-Zip-zstd/releases

Thank you @fotcorn for your note,
For my case I also need to download the http://repo.msys2.org/msys/x86_64/libzstd-1.4.8-1-x86_64.pkg.tar.zst.
So total of four packages

  1. rsync: http://repo.msys2.org/msys/x86_64/rsync-3.2.3-1-x86_64.pkg.tar.zst
  2. libxxhash: http://repo.msys2.org/msys/x86_64/libxxhash-0.8.0-1-x86_64.pkg.tar.zst
  3. liblzr: http://repo.msys2.org/msys/x86_64/liblz4-1.9.3-1-x86_64.pkg.tar.zst
  4. libzstd: http://repo.msys2.org/msys/x86_64/libzstd-1.4.8-1-x86_64.pkg.tar.zst

Copy four libs to the same folder, then use https://github.com/mcmilk/7-Zip-zstd/releases, to extract all of them. After that, copy folder "usr" to "C:\Program Files\Git".
And it works

@timmy-ly
Copy link

timmy-ly commented May 10, 2021

Then use https://github.com/mcmilk/7-Zip-zstd/releases, to extract all of them (extract 4 libs to folder "usr"). Then copy folder "usr" to "C:\Program Files\Git".
And it works

The "(extract 4 libs to folder "usr")" part confused me. Each of these packages contains their own /usr/ directory tree (in particular /usr/lib, /usr/bin). Just extract all these /usr/* to a new "usr" folder and then copy it to "C:\Program Files\Git". It works, thank you!

@ctrongminh
Copy link

ctrongminh commented May 10, 2021

Then use https://github.com/mcmilk/7-Zip-zstd/releases, to extract all of them (extract 4 libs to folder "usr"). Then copy folder "usr" to "C:\Program Files\Git".
And it works

The "(extract 4 libs to folder "usr")" part confused me. Each of these packages contains their own /usr/ directory tree (in particular /usr/lib, /usr/bin). Just extract all these /usr/* to a new "usr" folder and then copy it to "C:\Program Files\Git". It works, thank you!

Thanks @timmy-ly,
I edited the it a bit. Copy four libs to the same folder, and extract them all, then copy the "usr" folder to "C:\Program Files\Git".

@rolfschumacher
Copy link

rolfschumacher commented May 31, 2021

Where can I find the public key for checking downloads from http://www2.futureware.at/~nickoe/msys2-mirror/msys/x86_64/ ??

I found the fingerprint 81B3DB3F32C8A69E80C12875124374AB5E5E584A at the account of Nick Østergaard on lauchpad.net - but it seems to be expired.

@rkhyd
Copy link

rkhyd commented Jul 22, 2021

The link has expired.

@oakgary
Copy link

oakgary commented Jul 22, 2021

The link has expired.

A quick google search brings up these sites:

The process should be the same. Download, extract and put the .exe into a directory that is part of your PATH.
Please note that I did not verify above downloads. Use them at your own risk.

@terwer
Copy link

terwer commented Apr 14, 2022

Link no longer works, just search for "rsync" in the official msys2 repo instead: http://repo.msys2.org/msys/x86_64/
The newest version requires two additional packages to make it work: libxxhash and liblz4.
The packages are now compressed with zstd, unpack them inside git bash with zstd -d <package> or use 7zip with ZStandard support: https://github.com/mcmilk/7-Zip-zstd/releases

Thank you @fotcorn for your note, For my case I also need to download the http://repo.msys2.org/msys/x86_64/libzstd-1.4.8-1-x86_64.pkg.tar.zst. So total of four packages

  1. rsync: http://repo.msys2.org/msys/x86_64/rsync-3.2.3-1-x86_64.pkg.tar.zst
  2. libxxhash: http://repo.msys2.org/msys/x86_64/libxxhash-0.8.0-1-x86_64.pkg.tar.zst
  3. liblzr: http://repo.msys2.org/msys/x86_64/liblz4-1.9.3-1-x86_64.pkg.tar.zst
  4. libzstd: http://repo.msys2.org/msys/x86_64/libzstd-1.4.8-1-x86_64.pkg.tar.zst

Copy four libs to the same folder, then use https://github.com/mcmilk/7-Zip-zstd/releases, to extract all of them. After that, copy folder "usr" to "C:\Program Files\Git". And it works

thanks for your good works,it worked!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment