Я работаю на машине Windows, и я использую оболочку Bash, которая поставляется с Git. Но есть много утилит, которые отсутствуют в этой версии оболочки Bash.
Как я могу установить больше команд в этой оболочке?
Вы можете использовать две версии Git - дистрибутив msysgit или Cygwin .
Установка дополнительных утилит для Cygwin
Хотя вы, возможно, установили Git только как часть вашей установки Cygwin (если вы использовали Cygwin), у Cygwin есть программа setup.exe, которую вы можете использовать для добавления пакетов. По сути, все, что вам нужно сделать, это запустить setup.exeи выбрать, какие программы вы хотите установить, когда вы попадете в окно Выбор пакетов . Введение здесь обеспечивает хороший обзор с изображениями, которые детализируют процесс.
Установщик Cygwin достаточно умен, чтобы выяснить, что у вас уже есть существующая установка, и он добавит пакеты в вашу установку (вместо того, чтобы очищать ее от нуля и начинать заново).
MSYS
Другая версия Git, которую вы, вероятно, используете (если не Cygwin), это msysgit. Поскольку msysgit устанавливает минимальную среду Unix, которая на самом деле не совместима с MinGW, вам придется в конечном итоге установить пакет MinGW рядом с msysgit. Страница « Начало работы с MinGW» дает подробный обзор о том, как установить MinGW - поскольку я лично не имею опыта работы с MinGW, все, что я могу сделать, - это направить вас к их инструкциям.
Затем вам нужно будет перенести установку msysgit в MinGW. Это может быть достигнуто следующим образом (взято отсюда ). После выполнения следующей последовательности MinGW должен найти вашу установку Git.
cd GITDIR # Where GITDIR is wherever inside Program Files you put Git
cp bin/git* /MINGW/bin # Where MINGW is wherever you put MinGW
cp -r libexec/git* /MINGW/libexec
cp -r share/git* /MINGW/share
Для тех, кто интересуется, не пытайтесь использовать установщик cygwin в пакете msysgit. Это частично работает ... но при разрешении зависимостей он заменит sh.exe (который значительно меняет вашу среду).
Крис Бетти
5
Как узнать, использует ли мой git-bash cygwin или msys?
ИМО
7
Я установил с git-scm.com/download/win это msysgit или cygwin? РЕДАКТИРОВАТЬ понял это. Вместо того, чтобы удалить этот комментарий, я скажу, что это msysgit.
Ограниченное искупление
3
@LimitedAtonement - Пожалуйста, также скажите, как вы это поняли, для других читателей (таких как я), которые задали себе тот же вопрос.
Иоанна
4
Вы можете сказать, что вы установили, запустив uname -oв терминале bash.
Клифф Армстронг
5
С недавними установками Git для Windows установка дополнительных скриптов и программ оболочки довольно проста.
Я рекомендую установить git с помощью chocolateychoco install git , потому что вы можете обновить git (и все другие инструменты, установленные с chocolatey), выполнив choco upgrade all.
Просто поместите исполняемые файлы в C:\Program Files\Git\usr\bin( %ProgramFiles%\Git\usr\bin).
Если вы используете msysgit, простой вариант - просто установить MinGW, а затем добавить путь MINGW к файлу .bashrc, который вы используете для установки Git:
PATH=$PATH:/MINGW/msys/1.0/bin
... где MINGW, где вы установили MinGW
Таким образом, вы можете использовать инструменты MinGW непосредственно из вашей установки Git bash, а если вам нужен другой инструмент bash, вы можете просто установить его на MinGW.
Примечание: я заметил некоторые ошибки при использовании Wget в Git Bash для создания файлов WARC. Для более сложного использования Wget рассмотрите Cygwin .
Хьюго
Генератор статических сайтов Hugo можно загрузить в виде двоичного файла без установщика. Отбросив его в свой, binлегко добавляешь его в свой путь Git Bash. Возьмите 64-битную версию Windows со страницы релизов . Разархивируйте загрузку, затем скопируйте hugo.exeв свой Git\mingw64\binкаталог.
Скачать make-4.1-2-without-guile-w32-bin.zip(получить версию без лукавства).
Извлечь zip.
Скопируйте содержимое в ваши Git\mingw64\папки слияния, но НЕ перезаписывайте / заменяйте существующие файлы.
Nano
Начиная с 2018 года последние версии Git Bash включают Nano, так что в этом нет необходимости!
Загрузите двоичный файл Nano со страницы поддержки win32 для Nano . Вам просто нужен .exeфайл с именем nano-git-0d9a7347243.exe(на момент написания статьи).
Переименуйте файл в nano.exeи скопируйте в mingw64\binкаталог.
Эта версия Nano не будет работать только с Git Bash, но ее можно вызвать winpty, например, с помощью winpty nano test.txt.
@mike ваш ответ похож, за исключением того, что я не установил cygwin64
geneorama
1
Я попробовал следующее и установил emacs в git-bash. 1. Установите где-нибудь msys2 (не обязательно должен быть тот же компьютер). 2. Под msys2 выполните следующее:
cd /tmp
mkdir -p var/lib
cp -R /var/lib/pacman var/lib/
pacman -Sr /tmp emacs
tar zcf emacs.tar.gz usr
Скопируйте emacs.tar.gzтуда, куда вы можете получить доступ из git-bash, затем в git-bash:
tar zxf emacs.tar.gz -C / emacs
Вот и все, удачи.
После первого поста я попробовал другой компьютер, но не работал. Оказывается, в git-bash отсутствуют некоторые dll. Затем я проверил на чистой виртуальной машине следующие шаги:
Все сделано, теперь emacs работает в git-bash. Некоторые из 26 библиотек могут не понадобиться, но я бы предпочел сэкономить свое время вместо дискового пространства.
Если я использую Git bash для Windows (MinGW64), мне было очень трудно добавить в него rsync. продолжал получать ошибку: dup () in / out / err не удалось
Вместо этого использование Cygwin в конечном итоге сработало.
Шаги, которые я предпринял, чтобы использовать rysnc в Gitbash для Windows
Установите gitbash для Windows
Установите cygwin64
Добавьте путь cygwin в переменную пути Windows
Windows-> Система-> Дополнительные настройки-> Переменные среды
Добавьте путь для C: \ cygwin64 \ bin \
Закройте и снова откройте gitbash Теперь gitbash найдет rsync.exe в cygwin \ bin
Я получаю несовместимую ошибку версии для cygwin1.dll
*** фатальная ошибка - обнаружено несоответствие базы Cygheap
Хотя некоторые говорили, что перезагрузка это исправит, это не так.
Чтобы устранить ошибку версии, я скопировал каталог cygwin \ bin из более старой версии cygwin - работала версия 1.7.30
Вы можете скачать файл rsync прямо из mysys . Просто найдите на странице rsync и выберите страницу с последней датой / номером последней версии.
Распакуйте этот файл ( rsync-3.1.3-1-x86_64.pkg.tar.xz) через
tar -xf rsync-3.1.3-1-x86_64.pkg.tar.xz
Затем скопируйте rsync в ./usr/bin/rsync.exe
и вставьте его в папку / usr / bin вашей установки Git.
На моей машине этоC:/Program Files/Git/usr/bin/
Вы можете увидеть местоположение вашей установки Git через
Примечание: я не смог распаковать rsync-3.1.3-1-x86_64.pkg.tar.xzфайл прямо в папку Git, потому что разрешения не позволили. И у Git Bash нет sudo.
Но я мог распаковать его прямо в папку «Загрузки» без проблем.
Это так же хорошо, потому что в rsync.exeлюбом случае вам нужен только файл.
many utilities are missing in this version of bash shell
, Пожалуйста, добавьте, какие команды отсутствуют, которые вы хотели бы использовать.Ответы:
Вы можете использовать две версии Git - дистрибутив msysgit или Cygwin .
Установка дополнительных утилит для Cygwin
Хотя вы, возможно, установили Git только как часть вашей установки Cygwin (если вы использовали Cygwin), у Cygwin есть программа setup.exe, которую вы можете использовать для добавления пакетов. По сути, все, что вам нужно сделать, это запустить
setup.exe
и выбрать, какие программы вы хотите установить, когда вы попадете в окно Выбор пакетов . Введение здесь обеспечивает хороший обзор с изображениями, которые детализируют процесс.Установщик Cygwin достаточно умен, чтобы выяснить, что у вас уже есть существующая установка, и он добавит пакеты в вашу установку (вместо того, чтобы очищать ее от нуля и начинать заново).
MSYS
Другая версия Git, которую вы, вероятно, используете (если не Cygwin), это msysgit. Поскольку msysgit устанавливает минимальную среду Unix, которая на самом деле не совместима с MinGW, вам придется в конечном итоге установить пакет MinGW рядом с msysgit. Страница « Начало работы с MinGW» дает подробный обзор о том, как установить MinGW - поскольку я лично не имею опыта работы с MinGW, все, что я могу сделать, - это направить вас к их инструкциям.
Затем вам нужно будет перенести установку msysgit в MinGW. Это может быть достигнуто следующим образом (взято отсюда ). После выполнения следующей последовательности MinGW должен найти вашу установку Git.
источник
uname -o
в терминале bash.С недавними установками Git для Windows установка дополнительных скриптов и программ оболочки довольно проста.
Я рекомендую установить git с помощью chocolatey
choco install git
, потому что вы можете обновить git (и все другие инструменты, установленные с chocolatey), выполнивchoco upgrade all
.Просто поместите исполняемые файлы в
C:\Program Files\Git\usr\bin
(%ProgramFiles%\Git\usr\bin
).Пример для git-fresh
Скопируйте файл git-fresh в
C:\Program Files\Git\usr\bin
.Пример для adr-tools
src/
вC:\Program Files\Git\usr\bin
источник
Если вы используете msysgit, простой вариант - просто установить MinGW, а затем добавить путь MINGW к файлу .bashrc, который вы используете для установки Git:
... где MINGW, где вы установили MinGW
Таким образом, вы можете использовать инструменты MinGW непосредственно из вашей установки Git bash, а если вам нужен другой инструмент bash, вы можете просто установить его на MinGW.
источник
Вы можете скачать дополнительные юниты Unix
Wget, Hugo, Xpdf, make, Nano
отсюда: https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058Wget
wget64.exe
вwget.exe
случае необходимости.wget.exe
к своемуGit\mingw64\bin\
.Примечание: я заметил некоторые ошибки при использовании Wget в Git Bash для создания файлов WARC. Для более сложного использования Wget рассмотрите Cygwin .
Хьюго
Генератор статических сайтов Hugo можно загрузить в виде двоичного файла без установщика. Отбросив его в свой,
bin
легко добавляешь его в свой путь Git Bash. Возьмите 64-битную версию Windows со страницы релизов . Разархивируйте загрузку, затем скопируйтеhugo.exe
в свойGit\mingw64\bin
каталог.Xpdf
Xpdf - удобная утилита для работы с PDF-файлами.
xpdf-tools-win-4.00\bin64\
в свойGit\mingw64\bin\
.pdftotext
иpdftopng
.сделать
make-4.1-2-without-guile-w32-bin.zip
(получить версию без лукавства).Git\mingw64\
папки слияния, но НЕ перезаписывайте / заменяйте существующие файлы.Nano
.exe
файл с именемnano-git-0d9a7347243.exe
(на момент написания статьи).nano.exe
и скопируйте вmingw64\bin
каталог.winpty
, например, с помощьюwinpty nano test.txt
.источник
Сегодня я нашел довольно простой ответ, который сработал
rsync
.rsync
с futureware.at *C:\rsync-3.1.2-2-x86_64.pkg
* Я не знаю, кто стоит за futureware.at, я бы предпочел ссылку на более первоисточник.
источник
После первого поста я попробовал другой компьютер, но не работал. Оказывается, в git-bash отсутствуют некоторые dll. Затем я проверил на чистой виртуальной машине следующие шаги:
Установите msys2-x86_64-20180531 и Git-2.19.1-64-bit .
Обновите msys2, откройте консоль msys64 и запустите:
При появлении запроса закройте консоль msys64, а затем снова выполните приведенную выше команду.
Получите файлы emacs как предыдущие шаги (запустите следующее в msys64):
ps: я однажды попробовал описанные выше шаги в / d / tmp вместо / tmp и не смог установить на него emacs.
Откройте git-bash и извлеките файлы emacs:
Он будет жаловаться на отсутствие общей библиотеки "?" при попытке запустить Emacs сейчас. "?" не будет раскрыто ни для одного читаемого
Вернитесь к msys64 и получите dll для msys2:
В git-bash сравните dll с msys:
В моем случае в diff_dlls.txt есть 26 dll.
Скопируйте dll из msys64 в git-bash:
В msys64:
В гит-баш
Все сделано, теперь emacs работает в git-bash. Некоторые из 26 библиотек могут не понадобиться, но я бы предпочел сэкономить свое время вместо дискового пространства.
источник
Если я использую Git bash для Windows (MinGW64), мне было очень трудно добавить в него rsync. продолжал получать ошибку: dup () in / out / err не удалось
Вместо этого использование Cygwin в конечном итоге сработало.
Шаги, которые я предпринял, чтобы использовать rysnc в Gitbash для Windows
источник
Можно расширить число функций в git-bash, создав сценарии и вызывая их, определяя их в
~/.bash_profile
файле.пример
Если вы хотите использовать
watch
команду, этот скрипт можно добавить в~/.bash_profile
:https://gist.github.com/espaciomore/28e24ce4f91177c0964f4f67bb5c5fda
и обернуть его внутри функции:
Как только вы сохраните файл и запустите
source ~/.bash_profile
его, вы сможете наблюдать за выводом команд.источник
https://stackoverflow.com/questions/32712133/package-management-in-git-for-windows/52105321#52105321
источник
добавить
rsync
Вы можете скачать файл rsync прямо из mysys . Просто найдите на странице rsync и выберите страницу с последней датой / номером последней версии.
Распакуйте этот файл (
rsync-3.1.3-1-x86_64.pkg.tar.xz
) черезЗатем скопируйте rsync в
./usr/bin/rsync.exe
и вставьте его в папку / usr / bin вашей установки Git.На моей машине это
C:/Program Files/Git/usr/bin/
Вы можете увидеть местоположение вашей установки Git через
Вот репозиторий Gist его плана, который имеет инструкции вместе со ссылкой на версию 3.1.3-1 на rsync https://gist.github.com/hisplan/ee54e48f17b92c6609ac16f83073dde6 .
Примечание: я не смог распаковать
rsync-3.1.3-1-x86_64.pkg.tar.xz
файл прямо в папку Git, потому что разрешения не позволили. И у Git Bash нет sudo.Но я мог распаковать его прямо в папку «Загрузки» без проблем.
Это так же хорошо, потому что в
rsync.exe
любом случае вам нужен только файл.источник