Beenden Sie den Code 127 in cygwin64

4084
Tim Parenti

Nach Jahren ohne Probleme werden plötzlich mehrere Programme in meiner Installation von cygwin64 unter 64-Bit Windows 7 Professional nicht ausgeführt und scheinen sofort mit Code 127 zu beenden , was in Bash normalerweise "Befehl nicht gefunden" bedeutet . Insbesondere Programme wie vim, emacsund auch cleardieses Verhalten zeigen, während andere wie vi, echo, touchund datenormal zu funktionieren scheint.

Zuerst dachte ich, könnte etwas mit einer früheren Runde des Paket - Updates falsch gegangen ist, so lief ich ein weiteres Update mit der Cygwin - Setup - Befehlszeilenschnittstelle, aber es hat nicht zu helfen scheint.

Soweit ich das beurteilen kann, funktionieren die betroffenen Programme überhaupt nicht. Nicht einmal --versionFlaggen für die Programmarbeit, was mich auf den Gedanken bringt, dass etwas mit cygwin selbst nicht stimmt oder eine gemeinsame Abhängigkeit besteht:

$ vim --version $ echo $? 127 

(Ich kann spezifische Versionsnummern für verschiedene Pakete angeben, falls dies hilfreich ist. Da dieses Problem jedoch sowohl vor als auch nach den letzten Updates bestand, bezweifle ich, dass es sehr wichtig ist.)

Ich habe meine PATH-Variable noch einmal geprüft und sie beginnt /usr/local/bin:/usr/bin:wie erwartet mit. Gibt es möglicherweise eine neue Abhängigkeit in diesen Programmen, die vom Paketmanager von cygwin nicht richtig aufgelöst wird oder die möglicherweise nicht automatisch meinem PATH hinzugefügt wurde?

Fehlt mir etwas anderes offensichtlich?

2
Haben Sie Ihre PATH-Variable überprüft? mdpc vor 9 Jahren 0
@mdpc: Ja, das hätte ich erwähnen sollen. Es ist 2096 Byte lang und beginnt erwartungsgemäß mit `/ usr / local / bin 'und` / usr / bin'. Tim Parenti vor 9 Jahren 0

3 Antworten auf die Frage

4
omilu

Das gleiche ist mir passiert, nachdem ich ein Cygwin-Update durchgeführt habe. Vim startet nicht, Code 127. Das Hinzufügen von clear.exe hat nichts bewirkt.

strace vim +qgab sigalstack konnte nicht in der dll gefunden werden cygwin1.dll Die freundlichen Leute auf der cygwin-Mailingliste sagten, dass mein Update wahrscheinlich nicht abgeschlossen wurde, da ich nicht alle meine Cygwin-Prozesse geschlossen habe. Tatsächlich hatte ich sshd und cygrunsrv am Laufen, ich habe diese getötet und cygwin base neu installiert (Setup aufrufen und manuell cygwin base neu installieren). Viel Glück, Freunde

Das hat für mich funktioniert, nachdem ssh nicht mehr funktioniert. Vielen Dank Sc0ttyD vor 6 Jahren 0
2
Tim Parenti

Es sieht aus wie clearder Täter. Ich habe dies diagnostiziert, indem ich versuchte, es mit seinem vollständigen Pfad auszuführen:

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

Ich schaute dann hinein /usr/binund stellte fest, dass cleares irgendwie ganz fehlte. Also, mit dem GUI-Setup von cygwin erzwang ich eine erneute Neuinstallation des ncursesPakets, das enthält clear, und alles scheint jetzt in Ordnung zu sein.

Es liegt nahe, dass vimund nutzen emacsbeide clear, daher auch die Probleme, die sich bei diesen Programmen ergeben.

1
jmurphyau

Für alle, die hier bei Google ankommen - ich hatte die Erfahrung gemacht, dass Programme mit dem Fehlercode 127 auf Cygwin (insbesondere gcc) beendet wurden.

Das Problem stellte sich heraus, dass ich in einem Pfad mit einem Leerzeichen installiert wurde.

Wenn Sie die GUI installieren, werden Sie darauf hingewiesen. Ich habe von der Kommandozeile aus installiert und keine solche Warnung hinderte mich an der Installation.