Найти в Дзене

Установка rsync под Windows 10/11 для Git bash - лёгкий способ

Оглавление

Статья актуальна на 24.07.2024

Итак, вам понадобилось выкачать сайт с сервера на локалку, вы работаете под виндой, и хотелось бы использовать rsync, без долгих поисков неких аналогов или сторонних клиентов rsync.

Я пробовал 2 способа установки: через wsl и Git bash. О последнем и пойдёт речь в этом посте. Однако, нативная версия утилиты используется в обоих способах, к альтернативам не прибегаем.

Отмечу: в данном случае мы получим только функционал client-части, впрочем, лишь она и необходима для наших целей.

Вкратце:

Качаем win-версию rsync и необходимые библиотеки, ставим в папку гита, запускаем git bash и работаем.

А теперь детали:

1. Установка

Из готовой сборки:

https://hdden.ru/wp-content/uploads/2024/01/usr.zip , актуальная версия архива на странице https://hdden.ru/instructions/ustanovka-rsync-pod-windows-10-11-dlja-git-bash-ljogkij-sposob/#zagol-0 . Распаковывать по принципу:

\usr\bin → C:\Program Files\Git\usr\bin
\usr\lib → C:\Program Files\Git\usr\lib
\usr\share → C:\Program Files\Git\usr\share

Самостоятельная сборка:

1) Переходим на https://repo.msys2.org/msys/x86_64/ , качаем актуальные пакеты:

  1. rsync ( rsync-3.2.7-2-x86_64.pkg.tar.zst )
  2. libxxhash ( libxxhash-0.8.2-1-x86_64.pkg.tar.zst )
  3. liblz4 ( liblz4-1.9.4-1-x86_64.pkg.tar.zst )
  4. libzstd ( libzstd-1.5.5-1-x86_64.pkg.tar.zst )
  5. libopenssl ( libopenssl-3.2.0-1-x86_64.pkg.tar.zst )

2) Теперь, нам понадобится архиватор, т.к. эти пакеты упакованы в Zstandard.

Вариант 1 (проще и с графическим интерфейсом):

Сборка 7zip с его поддержкой, в данном случае никаких дополнительных телодвижений не потребуется
https://github.com/mcmilk/7-Zip-zstd/releases

Качаем, устанавливаем, каждый архив из первого пункта открываем через "Открыть с помощью - Найти другое приложение на этом компьютере" и далее идём в папку, куда установили 7zip ( обычно C:\Program Files\7-Zip-Zstandard\ ) и открываем через 7zFM.exe . Содержимое архивов распаковываем в папку гита по принципу:
\usr\bin → C:\Program Files\Git\usr\bin
\usr\lib → C:\Program Files\Git\usr\lib
\usr\share → C:\Program Files\Git\usr\share

Вариант 2 (сложнее)

Качаем архиватор zstd и вручную распаковываем все архивы через консоль.
Взять последнюю версию можно здесь
https://github.com/facebook/zstd/releases/

Переходим в папку с гитом (C:\Program Files\Git) либо в любую другую, создаём папку для архиватора "_zstd". Распаковываем содержимое архива в неё. Сам архив можно удалить, он не понадобится.

Распаковка zstd во временную папку
Распаковка zstd во временную папку

Внутри создаём папку "src" - сюда поместим архивы, которые нужно распаковать.

Запускаем терминал из папки с архиватором. Командой "zstd -d src/*" распакуем архивы.

Иллюстрация процесса
Иллюстрация процесса

Переходим в src и видим уже привычные .tar-файлы. Открываем каждый, распаковываем из них файлы в соответствующие по тому же принципу:
\usr\bin → C:\Program Files\Git\usr\bin
\usr\lib → C:\Program Files\Git\usr\lib
\usr\share → C:\Program Files\Git\usr\share

2. Запускаем Git Bash и пользуемся rsync

Запуск rsync client с linux в windows
Запуск rsync client с linux в windows

Пользуемся, например, командой:
rsync --archive --verbose --progress --preallocate --no-owner --no-group login@host_or_ip:/path/to/source/ /c/Users/user/OpenServer/domains/example.ru/

или, если хотим пропускать существующие файлы и папку .git:
rsync -rvzl --update --ignore-existing --exclude=.git --progress --preallocate --no-owner --no-group login@host_or_ip:/path/to/source/ /c/Users/user/OpenServer/domains/example.ru/

-------------------------------------------------------------------------------------------

Благодарю за внимание! Надеюсь, одним нераскрытым вопросом стало меньше :-)

-------------------------------------------------------------------------------------------

Оригинал статьи: https://hdden.ru/instructions/ustanovka-rsync-pod-windows-10-11-dlja-git-bash-ljogkij-sposob/