为什么Composer安装突然失败了?

9

我正在本地环境和生产环境中运行composer install,但两者都失败了。这只是从今天开始的。我已经检查了代码更改,composer文件没有变化。有人可以解释一下吗?我完全不知道可能是什么问题。我以为是github出了问题,但我确实成功安装了一些包。我遇到了类似于这样的错误:

安装phpunit/php-timer(2.1.2):正在下载(100%) 安装phpunit/php-text-template(1.2.1):正在下载(100%) 安装phpunit/php-file-iterator(2.0.2):正在下载(0%)无法从分发中下载phpunit/php-file-iterator:无法对github.com进行身份验证现在尝试从源下载 安装phpunit/php-file-iterator(2.0.2):从缓存克隆050bedf145 安装theseer/tokenizer(1.1.3):正在下载(0%)无法从分发中下载theseer/tokenizer:无法对github.com进行身份验证现在尝试从源下载 安装theseer/tokenizer(1.1.3):从缓存克隆11336f6f84 安装sebastian/code-unit-reverse-lookup(1.0.1):正在下载(0%)无法从分发中下载sebastian/code-unit-reverse-lookup:无法对github.com进行身份验证现在尝试从源下载 安装sebastian/code-unit-reverse-lookup(1.0.1):从缓存克隆4419fcdb5e 安装phpunit/php-code-coverage(6.1.4):正在下载(0%)无法从分发中下载phpunit/php-code-coverage:无法对github.com进行身份验证现在尝试从源下载 安装phpunit/php-code-coverage(6.1.4):从缓存克隆807e6013b0 安装doctrine/instantiator(1.3.0):正在下载(0%)无法从分发中下载doctrine/instantiator:无法对github.com进行身份验证现在尝试从源下载 安装doctrine/instantiator(1.3.0):从缓存克隆ae466f7262 安装phpspec/prophecy(v1.10.2):正在下载(0%)无法从分发中下载phpspec/prophecy:无法对github.com进行身份验证现在尝试从源下载 安装phpspec/prophecy(v1.10.2):从缓存克隆b4400efc9d 安装phar-io/version(2.0.1):正在下载(0%)无法从分发中下载phar-io/version:无法对github.com进行身份验证现在尝试从源下载 安装phar-io/version(2.0.1):从缓存克隆45a2ec53a7 安装phar-io/manifest(1.0.3):正在下载(0%)无法从分发中下载phar-io/manifest:无法对github.com进行身份验证现在尝试从源下载 安装phar-io/manifest(1.0.3):从缓存克隆7761fcacf0 安装myclabs/deep-copy(1.9.5):正在下载(0%)无法从分发中下载myclabs/deep-copy:无法对github.com进行身份验证现在尝试从源下载 安装myclabs/deep-copy(1.9.5):从缓存克隆b2c28789e8 安装phpunit/phpunit(7.5.20):正在下载(0%)无法从分发中下载phpunit/phpunit:无法对github.com进行身份验证现在尝试从源下载 安装phpunit/phpunit(7.5.20):克隆9467db479d
[Symfony\Component\Process\Exception\ProcessTimedOutException] 进程“git clone --no-checkout 'https://github.com/sebastianbergmann/phpunit.git' '/var/www/vendor/phpunit/phpunit' && cd '/var/www/vendor/phpunit/phpunit' && git remote add composer 'https://github.com/sebastianbergmann/phpunit.git' && git fetch composer && git remote set-url origin 'https://github.com/sebastianbergmann/phpunit.git'

你好,似乎从 Github 获取 PHPUnit 的时间太长了。你重试了吗?也许是服务器请求太多的原因。 - GrenierJ
是的,我认为这是因为Github正在进行速率限制。我相信我在下面找到了答案。 - Chris
1个回答

13
我们看到了相同的问题,怀疑这可能是因为Composer在1.10版本以后的行为改变或GitHub方面的速率限制发生了变化。
看起来它首先尝试进行HTTP下载(Composer没有显示确切的HTTP错误,并不是很有帮助),然后回退到克隆源代码。后者可以工作一段时间,但之后也会超时,可能是因为GitHub也在限制这些。
无论哪种情况,我们解决该问题的方法是确保Composer对GitHub的HTTP请求已经过身份验证。请查看此处的文档:https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens
  1. 在GitHub上创建一个OAuth令牌。 阅读更多信息

  2. 将其添加到配置中,运行 composer config -g github-oauth.github.com <oauth令牌>


3
是的,我也在Composer上创建了一个问题,很多人都在说同样的事情。https://github.com/composer/composer/issues/8710 - Chris
1
在2022年,我成功地创建了一个无作用域的令牌,并在composer提示时将其复制到终端中:composer create-project laravel/laravel example-app - Diego Lope Loyola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接