Ich habe ein seltsames Problem damit, dass Cygwin zwischen den Installationen inkonsistent agiert, insbesondere bei scp. Ich habe in beiden Fällen c: \ cygwin \ bin in meinem Windows-Pfad. Wenn ich jedoch den folgenden Befehl über eine Windows-Eingabeaufforderung ausführe , werden zwischen den beiden Installationen sehr unterschiedliche Ergebnisse erzielt:
scp /cygdrive/c/something.txt User@server:${HOME}/something.txt
Auf dem einen Rechner überträgt es die Datei einwandfrei, aber auf dem anderen Rechner erhalte ich eine Fehlermeldung:
/cygdrive/c/something.txt: No such file or directory
Wenn ich den Befehl jedoch auf dem Computer, auf dem der Fehler aufgetreten ist, auf diese Weise ausführe, funktioniert die Übertragung einwandfrei:
scp /c/something.txt User@server:${HOME}/something.txt
Warum die Unterschiede? Muss ich in cygwin etwas konfigurieren, damit dies mit / cygdrive / c funktioniert?
UPDATE: Hier ist etwas interessanteres. Wenn ich ls /c
an einer Windows-Eingabeaufforderung tue, erhalte ich das, was Sie erwarten würden, als Liste von allem in C :. ls /cygdrive/c
Sagt jedoch, dass es nicht existiert. Das Ausführen dieser Befehle aus der Cygwin-Bash ergibt genau das gegenteilige Verhalten.
/cygdrive
sei denn, Sie ändern ihn manuell (zumindest war dies das letzte Mal, als ich das überprüft habe). Sie wissen, dass nichts Sie davonDas Problem war meine PATH-Priorität. Es war
aber es musste sein
Nach dem Reparieren wurde der PATH
/cygdrive/c
wie erwartet behoben.quelle
Ich habe dieses Problem festgestellt, nachdem ich Git installiert, es meinem PATH als bin hinzugefügt, dann Cygwin installiert und ssh-host-config ausgeführt habe, um einen Windows-Dienst für sshd einzurichten. Das Problem scheint zu sein, dass sshd aufgrund der Art und Weise, wie ssh-host-config den Dienst registriert, die ausführbare Datei Gits (oder den von scp oder ssh bereitgestellten Befehl) aufruft, anstatt die von Cygwin beim Einrichten einer scp-Verbindung. Um dies zu beheben, entfernte ich den Dienst, wie er von ssh-host-config installiert wurde. Aus Cygwin Bash habe ich ausgeführt
cygrunsrv -R sshd
. Dann habe ich den Dienst mit einer PATH-Variablenüberschreibung neu registriert.Dabei ist priv_user wahrscheinlich cyg_server. Siehe http://cygwin.com/ml/cygwin/2005-05/msg00012.html .
quelle