Установка дополнительных команд для Git Bash.

На данном этапе у нас есть терминал Git Bash для Windows. Возможно вы уже попробовали выполнить в нем несколько привычных команд. И если какая-то из команд не входит в набор по умолчанию, вы получили ответ:
command not found

Так как в стандартную комплектацию Git Bash включен только необходимый минимум, вы часто будете сталкиваться с таким сообщением. К счастью, мы можем легко расширить состав доступных команд. Для начала определимся какие команды уже присутствуют, для этого заглянем в директорию usr/bin/ в Git. В моем случае полный путь D:\Program Files\Git\usr\bin

Видим тут есть vim, ssh, gzip, но нет например wget. Давайте на нем и рассмотрим, как установить недостающую команду.

Команда — это небольшая программа, и нам достаточно скачать ее и добавить к уже имеющимся. Есть отличное место, где собраны пакеты самых разных команд — репозиторий msys. С этого репозитория мы и будем скачивать. Но так как в данном репозитории все пакеты хранятся в архивах zst, который по умолчанию в Windows нечем распаковывать, первым делом скачаем и добавим в систему именно программу zstd.

Переходим на сайт с репозиторием msys, и ищем там пакет с последней версией zstd, на данный момент это zstd-1.5.6-1-x86_64.pkg.tar.zst Скачиваем его, но опять же из-за того что он сам тоже запакован с помощью zstd мы пока не можем его распаковать.

Переходим в официальный репозиторий zstd и находим ссылку на скачивание версии для Windows, в моем случае это https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-v1.5.7-win64.zip
Распаковываем скачанный архив, переходим в папку C:\Users\waky\Downloads\zstd-v1.5.7-win64\ содержащую файл zstd.exe

Находясь в проводника в папке C:\Users\waky\Downloads\zstd-v1.5.7-win64\ в поле пути пишем cmd и жмем Enter. Так мы запустим командную строку прямо из текущей директории.

Запустим программу zstd.exe, чтобы распаковать архив zstd-1.5.6-1-x86_64.pkg.tar.zst В командной строке запустим выполним zstd.exe -d с указанием пути до архива:

C:\Users\waky\Downloads\zstd-v1.5.7-win64>zstd.exe -d C:\Users\waky\Downloads\zstd-1.5.6-1-x86_64.pkg.tar.zst
C:\Users\waky\Downloads\zstd-1.5.6-1-x86_64.pkg.tar.zst : 798720 bytes

В Загрузках появился новый архив zstd-1.5.6-1-x86_64.pkg.tar его можно разархивировать стандартными средствами. Распакуем и проверим содержимое. В папке zstd-1.5.6-1-x86_64.pkg содержится папка usr с вложенными в нее bin и share. Копируем обе и вставляем в наш Git D:\Program Files\Git\usr\

Таким образом мы добавили пакет с zstd непосредственно в наш Git Bash и сможем в дальнейшем все операции проводить непосредственно в его терминале.

Возвращаемся на страницу репозитория msys и копируем ссылку на последнюю версию пакета wget, на данный момент это wget-1.25.0-1-x86_64.pkg.tar.zst
Запускаем терминал Git Bash и скачиваем архив с wget.

waky@DESKTOP-A92D0OT MINGW64 ~
$ curl https://repo.msys2.org/msys/x86_64/wget-1.25.0-1-x86_64.pkg.tar.zst > Downloads/wget-1.25.0-1-x86_64.pkg.tar.zst

Распаковываем архив, так как мы добавили в наш терминал zstd, теперь все делается одним tar:

waky@DESKTOP-A92D0OT MINGW64 ~
$ mkdir Downloads/wget-1.25.0-1-x86_64.pkg

waky@DESKTOP-A92D0OT MINGW64 ~
$ tar --zstd -xvf Downloads/wget-1.25.0-1-x86_64.pkg.tar.zst -C Downloads/wget-1.25.0-1-x86_64.pkg

Копируем содержимое usr/ из архива в директорию нашего Git Bash:

waky@DESKTOP-A92D0OT MINGW64 ~
$ cp -an Downloads/wget-1.25.0-1-x86_64.pkg/usr/ "d:/Program Files/Git/"

Проверим, что wget работает, выведем текущую версию:
wget --version

Подведем итог, чтобы добавить команду в Git Bash нужно:

  • скачать архив пакета из репозитория msys
  • распаковать архив с помощью zstd и tar
  • перенести содержимое usr/ пакета в usr/ Git Bash