Tah*_*oon 8 php windows git-bash composer-php
我正在尝试通过php安装composer,如他们的wesite所述.
php -r "readfile('https://getcomposer.org/installer');" | php
Run Code Online (Sandbox Code Playgroud)
但它显示以下错误:
$ php -r "readfile('https://getcomposer.org/installer');" | php
output is not a tty
input is not a tty
Run Code Online (Sandbox Code Playgroud)
我在Windows 7中并使用git bash来执行此命令.在Windows命令提示符下,它工作正常.只有从git bash 2.6.2-64bit运行此命令时才会出现此问题.
顺便说一下,我已经为windows安装了composer,这很好用.但我无法以这种方式下载composer.phar.我该如何解决这个问题?
它可以是PATH或编码问题:
看起来
git ls-remote origin,从新建和安装的MinGW Git运行无法输出任何东西,并且git ls-remote origin | cat(从使用旧的MSys/MinGW的怪癖中学到的技巧)只说:(output is not a tty退出代码为127,表明有些找不到可执行文件,但很难说哪一个,因为甚至没有显示调试打印语句到stderr;似乎在崩溃或die()的情况下,stderr没有被刷新)
问题519甚至建议unaliaswinpty
unalias $(alias | grep winpty | cut -d"=" -f1 | cut -d" " -f2)
Run Code Online (Sandbox Code Playgroud)但:
不,我们不能简单地放弃winpty.PHP可以交互式运行,即它需要一个合适的Win32控制台.在MinTTY中运行没有winpty的PHP将不会提供该控制台实例,从而使您看起来没有响应的终端.
请参阅git-for-windows/build-extra @ 44ed99b,#399和#400,了解您只需删除这些别名就会造成什么样的破坏.
所以现在,bash控制台与php通过管道执行不兼容(因为第二个| php可能不会受益winpty,当程序需要Win32控制台进行交互式使用时,这似乎是必需的).
如果你使用C:`Program Files\Git\bin\bash.exe
instead ofC:\ Program Files\Git\git-bash.exe`,那么命令工作正常.
我正在将它与ConsoleZ结合使用而没有任何问题
这可能是因为bash.exe不使用winpty,相反git-bash.exe.