Код выхода 127 в cygwin64

4006
Tim Parenti

После нескольких лет без проблем несколько программ в моей установке cygwin64 на 64-битной Windows 7 Professional перестали работать, и вместо этого они сразу же завершают работу с кодом 127, что обычно означает «команда не найдена» в Bash . В частности, такие программы, как vim, emacsи даже clearдемонстрировать такое поведение, в то время как другие, как vi, echo, touchи, dateкажется, работает нормально.

Сначала я подумал, что что-то могло пойти не так с предыдущим циклом обновлений пакетов, поэтому я запустил другое обновление, используя интерфейс командной строки cygwin setup, но, похоже, это не помогло.

Из того, что я могу сказать, затронутые программы вообще не работают. Даже не --versionфлаги для работы программы, что заставляет меня думать, что может быть что-то не так с самим Cygwin или общей зависимостью:

$ vim --version $ echo $? 127 

(Я могу предоставить конкретные номера версий для различных пакетов, если это поможет, но, поскольку эта проблема существовала как до, так и после самых последних обновлений, я сомневаюсь, что это имеет большое значение.)

Я дважды проверил свою переменную PATH, и она начинается с /usr/local/bin:/usr/bin:, как и ожидалось. Возможно, есть какие-то новые зависимости в этих программах, которые не были должным образом разрешены менеджером пакетов cygwin или которые, возможно, не были автоматически добавлены в мой PATH?

Я упускаю что-то еще очевидное?

2
Вы проверяли переменную PATH? mdpc 9 лет назад 0
@ MDPC: Да, я должен был упомянуть это. Он имеет длину 2096 байт и начинается с `/ usr / local / bin` и` / usr / bin`, как и ожидалось. Tim Parenti 9 лет назад 0

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

4
omilu

The exact same thing happened to me after I did a cygwin update, vim won't start, code 127. Adding clear.exe did nothing.

strace vim +q gave sigalstack could not be located in the dll cygwin1.dll The kind folks at the cygwin mailing list said my update probably did not complete becuase i did not close all my cygwin processes. Indeed I had sshd and cygrunsrv going, I killed those, and reinstalled cygwin base (go into setup and manually select reinstall cygwin base) this fixed everything. Good luck friends

Это сработало для меня после того, как ssh перестал работать. Спасибо Sc0ttyD 6 лет назад 0
2
Tim Parenti

It looks like clear was the culprit. I diagnosed this by trying to run it with its full path:

$ /usr/bin/clear $ echo $? 127 

I then looked inside /usr/bin and found that clear was somehow missing altogether. So, using cygwin's GUI setup, I forced a fresh reinstall of ncurses, the package which contains clear, and everything seems to be in working order now.

It stands to reason that vim and emacs both make use of clear, hence the problems cascaded to those programs, too.

1
jmurphyau

Для любого, кто прибывает сюда из Google - у меня был опыт, когда программы выходили с кодом ошибки 127 на Cygwin (в частности, gcc).

Проблема оказалась в том, что я установил путь с пробелом в нем.

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