2015-11-10 5 views
6

Ich versuche, Composer über PHP zu installieren, wie in ihrer Website beschrieben.Composer Installation Fehler - Ausgabe ist kein TTY, Eingabe ist kein tty

php -r "readfile('https://getcomposer.org/installer');" | php 

Aber es ist die Anzeige der folgenden Fehler:

$ php -r "readfile('https://getcomposer.org/installer');" | php 
output is not a tty 
input is not a tty 

Ich bin in Windows 7 und mit git bash diesen Befehl auszuführen. An der Windows-Eingabeaufforderung funktioniert es gut. Dieses Problem tritt nur auf, wenn ich diesen Befehl von git bash 2.6.2-64bit aus führe.

BTW, ich habe Composer für Windows installiert, und das funktioniert gut. Aber ich kann composer.phar nicht auf diese Weise herunterladen. Wie kann ich dieses Problem beheben?

+0

Sieht aus, als ob das Problem ist, dass Sie den Befehl von git bash laufen und nicht von der Windows-Befehlszeile . Aber ohne einen Link zu den Anweisungen, über die Sie sprechen, ist es schwierig, sicher zu sein. –

+0

ja, Johnston, wenn ich von der Windows-Eingabeaufforderung verwende, funktioniert es gut. Ich habe gerade getestet, aber nicht mit git bash arbeiten. Glaubst du, es ist ein Problem mit der git bash? Aber ich könnte es mit git bash auch vorher benutzen (in anderen Rechnern/anderer git bash Version). –

Antwort

6

Es kann einen Pfad oder eine Codierung Problem sein:

it seems that git ls-remote origin , run from a freshly-built and installed MinGW Git fails to be able to output anything, and git ls-remote origin | cat (a trick learned from working with old MSys'/MinGW's quirks) only says: output is not a tty (the exit code is 127, suggesting that some executable was not found, but it is very difficult to say which one because not even debug print statements to stderr are shown; It seems that in case of a crash or of a die(), stderr is not flushed)

  • issue 519 schlägt sogar zu unalias winpty

    unalias $(alias | grep winpty | cut -d"=" -f1 | cut -d" " -f2) 
    

Aber:

No, we cannot simply abandon winpty. PHP can be run interactively, i.e. it requires a proper Win32 Console. Running PHP without winpty in MinTTY would not provide that Console instance, leaving you with a seemingly unresponsive terminal.

See git-for-windows/[email protected] , #399 and #400 to understand what havoc you would wreak by simply removing those aliases.

So jetzt ist die Bash-Konsole nicht kompatibel mit php durch die Leitung der Ausführung (als zweites | php möglicherweise nicht von winpty profitieren, die erforderlich scheinen, wenn ein Programm eine Win32-Konsole benötigt für interaktive Nutzung).

Peh Punkte aus in the comments:

If you use C:`Program Files\Git\bin\bash.exe instead of C:\Program Files\Git\git-bash.exe`, then the command works fine.
I'm using it in combination with ConsoleZ without any problems

Das ist wahrscheinlich, weil bash.exe nicht winpty, git-bash.exe im Gegensatz zu nicht verwendet.

+6

Wenn Sie 'C: \ Programme \ Git \ bin \ bash.exe' anstelle von 'C: \ Programme \ Git \ git-bash.exe' verwenden, funktioniert der Befehl einwandfrei. Ich verwende es in Verbindung mit [ConsoleZ] (https://github.com/cbucher/console) ohne Probleme. –

+0

@Peh Vielen Dank für dieses Feedback. Ich habe es in die Antwort für mehr Sichtbarkeit aufgenommen. – VonC

+0

Danke dir Vonc und Peh. –

2

Die Antwort von VonC ist richtig, und um anderen in Zukunft zu helfen, möchte ich eine visuelle Lösung anbieten.

  • Navigieren Sie zu C: \ Programme \ Git \ bin
  • Doppelklick auf bash.exe

enter image description here

  • Sie jetzt eine Eingabeaufforderung sehen sollte.

  • Navigieren Sie zu Ihrem PHP-Projektverzeichnis und installieren Sie Composer.

    $ cd C: \ Pfad \ Ihr \ Projekt

    $ curl -sS https://getcomposer.org/installer auf \ | php

    $ ls

  • Die Datei composer.phar ist jetzt sichtbar in Projektstamm.

  • Installieren Sie ein Paket mit Composer.

    $ php composer.phar erfordern einige-Paket-you-want-to-install

+0

Schöne Illustration. +1 – VonC

Verwandte Themen