1. Проблема объяснена
Мне нужно запустить инструмент merge
(часть проекта GNU RCS - Система контроля версий) на Windows 10. Вот требования:
- ШАГ 1: Исполняемый файл
merge.exe
должен работать в собственном терминале Windows cmd. - ШАГ 2: Переменная
PATH
env не должна изменяться. - ШАГ 3: Исполняемый файл может находиться в любой произвольной папке (конечно, можно поставить рядом с ним кучу dll, если требуется).
Это привело бы нас слишком далеко, чтобы объяснить , почему эти требования так важны. Пожалуйста, просто примите их «как есть».
2. Первая проба: запуск исполняемого файла msys
Я установил MSYS2 в C:/msys64
и нашел исполняемый файл в этом месте: C:/msys64/usr/bin/merge.exe
. Итак, пора попробовать STEP1 ~ STEP3.
STEP 1
Я могу заставить его работать в native Windows терминале , если я добавлю C:/msys64/usr/bin/
в переменную PATH
env:
C:/Users/Kristof>merge.exe a.txt b.txt c.txt
ура!
ШАГ 2
К сожалению, go работает неправильно, когда я не изменяю PATH
env и вызовите merge.exe
по ее полному пути:
C:/Users/Kristof>"C:/msys64/usr/bin/merge.exe" a.txt b.txt c.txt
/usr/bin/diff3: subsidiary program 'diff' not found
Я не понимаю, почему появляется эта ошибка. В конце концов, исполняемые файлы diff3.exe
и diff.exe
находятся рядом с merge.exe
. Почему их нельзя найти?
ШАГ 3
Ну, ШАГ 3, очевидно, бесполезен, если я не могу сначала заставить предыдущий шаг работать.
3. Другие испытания
3.1 Бинарные файлы Purdue
Вы можете найти бинарные файлы для RCS здесь: https://www.cs.purdue.edu/homes/trinkle/RCShome/
Я скачал rcs57pc1.zip (1,2 МБ) с этого веб-сайта. К сожалению, каждая попытка запустить merge.exe
терпит неудачу со следующим сообщением об ошибке:
diff3.exe: subsidiary program failed
Я пробовал решения, предлагаемые в этом сообщении StackOverflow, но они тоже не работают:
RCS на Windows - rcsmerge всегда не работает
3.2 ezwinports
Я скачал rcs-5.7-1.zip от: https://sourceforge.net/projects/ezwinports/files/
При запуске его файла merge.exe
я получаю следующую ошибку:
diff3.exe: Unknown signal 0xEEEEEEEE
merge aborted
Действительно, я не видел diff3.exe
в распакованной папке. Поэтому я скопировал diff3.exe
и diff.exe
из моей установки MSYS (находится по адресу C:/msys64/usr/bin/
) в распакованную папку rcs-5.7-1
. Безуспешно. То же сообщение об ошибке.
3.3 GnuWin32
Проект GnuWin32 известен своими многочисленными преобразованиями популярных инструментов с Linux в Windows. Я загрузил GnuWin32 (http://gnuwin32.sourceforge.net/) и выполнил полную установку в C:/gnuwin32/
. Я просмотрел свою папку C:/gnuwin32/
, но нигде не нашел инструмента merge.exe
. Это очень странно, потому что проект GNU RCS здесь явно упоминается как пакет из проекта GnuWin32:
http://gnuwin32.sourceforge.net/packages/rcs.htm