首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Composer安装错误-输出不是tty,输入不是tty

Composer安装错误-输出不是tty,输入不是tty
EN

Stack Overflow用户
提问于 2015-11-10 10:55:37
回答 3查看 11K关注 0票数 8

我正在尝试通过php安装composer,正如他们的网站中所描述的那样。

代码语言:javascript
复制
php -r "readfile('https://getcomposer.org/installer');" | php

但它显示以下错误:

代码语言:javascript
复制
$ php -r "readfile('https://getcomposer.org/installer');" | php
output is not a tty
input is not a tty

我在windows7中使用git bash来执行这个命令。在windows命令提示符下,它工作得很好。这个问题只有在我从git bash 2.6.2-64bit运行这个命令时才会发生。

顺便说一句,我已经为windows安装了composer,并且工作正常。但是我不能用这种方式下载composer.phar。如何解决此问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-10 12:54:17

可能是路径或编码问题:

从新构建和安装的MinGW Git运行的git ls-remote origin似乎无法输出任何内容,而git ls-remote origin | cat (这是从使用旧MSys/MinGW的怪癖中学到的技巧)只说:output is not a tty (退出代码是127,表示没有找到某些可执行文件,但很难说出是哪一个,因为甚至没有显示到stderr的调试打印语句;似乎在发生崩溃或MinGW()的情况下,stderr不会被刷新)

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

但是:

不,我们不能简单地放弃winpty。PHP可以交互运行,也就是说它需要一个合适的Win32控制台。在MinTTY中没有winpty的情况下运行PHP将不会提供控制台实例,只会给您留下一个看起来没有响应的终端。

参见git-for-windows/build-extra@44ed99b#399#400,了解通过简单地删除这些别名会造成多大的破坏。

因此,现在,bash控制台与通过管道执行php不兼容(因为第二个| php可能不会从winpty中受益,当程序需要Win32控制台以进行交互使用时,似乎需要使用它)。

Peh指出in the comments

如果您使用C:Program Files\Git\bin\bash.exeinstead ofC:\Program Files\Git\git-bash.exe,则该命令可以正常工作。

我将它与ConsoleZ结合使用,没有任何问题

这可能是因为与git-bash.exe相反,bash.exe没有使用winpty

票数 8
EN

Stack Overflow用户

发布于 2016-12-25 01:11:00

VonC的答案是正确的,为了在未来帮助其他人,我想提供一个更直观的解决方案。

  • 导航到C:\Program Files\Git\bin
  • Double-click
  • 您现在应该看到一个命令提示符。
  • 导航到PHP项目目录并安装Composer。

$cd C:\path\到\您的\项目

$卷曲-shttps://getcomposer.org/installer| php

$ls

  • 文件composer.phar现在在项目根目录中可见。
  • 使用composer安装软件包。

$php编写器。phar需要一些要安装的软件包

票数 2
EN

Stack Overflow用户

发布于 2019-08-16 08:19:28

可以使用bash: C:\Program Files\Git\bin\bash.exe输出

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33622087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档