Установка sha1sum на git-bash (MinGW)

4363
mcgyver5

Я много пользуюсь git-bashна Windows 7. Я полагаю, это обертка MinGW. У него есть md5sum, но нет sha1sum . Я хотел бы установить sha1sum, но я не могу понять, как.

Когда я пытаюсь mingw-get, он говорит "команда не найдена"

Когда я пытался скачать mingw-getс SourceForge, я нашел только установщик для всей программы MinGW, но не для mingw-get.

Как мне установить либо получать, sha1sumлибо получать mingw-get?

5

2 ответа на вопрос

6
Steven Penny

mingw-get доступен на

sourceforge.net/projects/mingw/files/Installer/mingw-get

После того, как вы установили этот прогон

mingw-get install msys-coreutils

Спасибо за ваш ответ. Я скачал его и запустил установщик. К сожалению, это результат: Добро пожаловать в Git (версия 1.7.4-preview20110204) McGuiT1 @ ISTM-L-6328MJ1 ~ $ mingw-get install mysys-coreutils sh.exe ": mingw-get: команда не найдена mcgyver5 12 лет назад 0
Вам нужно добавить mingw-get на ваш путь http://wikipedia.org/wiki/PATH_%28variable%29 Steven Penny 12 лет назад 1
обновление: я успешно установил mingw-get и затем msys-coreutils, но команда sha1sum все еще не найдена mcgyver5 10 лет назад 1
1
thetabit

Я решил это для себя, добавив функцию оболочки, которая использует включенный openssl, чтобы заменить часть sha1sum, которую я использовал чаще всего.

function openssl_sha1sum() { local i nf=0 binary= text=true local -a files  # parse for -b/-t mode output arguments for (( i=1; i <= $#; i++ )); do case "${!i}" in (-t|--text) text=true binary= ;; (-b|--binary) binary=true text= ;; (-|-[cw]|--help|--version|--status|--check|--warn) ;; (*) let 'nf++' files[$nf]="${!i}" ;; esac done  # execute the appropriate command and reformat the output if [ $nf -eq 0 ]; then local binfmt='s/$/ *-/;' txtfmt='s/$/ -/;' if [ -n "$binary" ]; then fmt=$binfmt else fmt=$txtfmt fi openssl dgst -sha1 -hex | sed -e "$fmt" else local commonfmt='s/^[A-Z0-9]\+(\(.*\))= \([0-9a-fA-F]\+\)$/\2' local binfmt="$commonfmt "'*\1/;' txtfmt="$commonfmt "'\1/;' if [ -n "$binary" ]; then fmt=$binfmt else fmt=$txtfmt fi openssl dgst -sha1 -hex "$" | sed -e "$fmt" fi }  if ! type -p sha1sum &>/dev/null; then function sha1sum() { openssl_sha1sum "$@"; } fi 

Похожие вопросы