【问题标题】:Why is Composer Install Failing All of the Sudden?为什么 Composer 安装突然失败?
【发布时间】:2020-07-05 13:59:38
【问题描述】:

我在本地环境和生产环境中运行composer install,但它们都失败了。这是今天才开始的。我已经查看了代码更改并且作曲家文件没有更改。任何人都可以对此有所了解...我不知道它可能是什么。我以为 github 宕机了,但我确实成功安装了一些软件包。我收到这样的错误:

...

  • 安装 phpunit/php-timer (2.1.2): 正在下载 (100%)
  • 安装 phpunit/php-text-template (1.2.1):正在下载 (100%)
  • 正在安装 phpunit/php-file-iterator (2.0.2):正在下载 (0%) 无法从 dist 下载 phpunit/php-file-iterator:无法针对 github.com 进行身份验证 现在尝试从源下载
  • 安装 phpunit/php-file-iterator (2.0.2):从缓存中克隆 050bedf145
  • 安装 theser/tokenizer (1.1.3): 下载 (0%) 无法从 dist 下载 theser/tokenizer: 无法针对 github.com 进行身份验证 现在尝试从源下载
  • 安装 theser/tokenizer (1.1.3):从缓存中克隆 11336f6f84
  • 正在安装 sebastian/code-unit-reverse-lookup (1.0.1):正在下载 (0%) 无法从 dist 下载 sebastian/code-unit-reverse-lookup:无法针对 github.com 进行身份验证 现在尝试从源下载
  • 安装 sebastian/code-unit-reverse-lookup (1.0.1):从缓存中克隆 4419fcdb5e
  • 正在安装 phpunit/php-code-coverage (6.1.4):正在下载 (0%) 无法从 dist 下载 phpunit/php-code-coverage:无法针对 github.com 进行身份验证 现在尝试从源下载
  • 安装 phpunit/php-code-coverage (6.1.4):从缓存中克隆 807e6013b0
  • 安装教义/实例化器 (1.3.0):下载 (0%) 无法从 dist 下载教义/实例化器:无法针对 github.com 进行身份验证 现在尝试从源下载
  • 安装教义/实例化器 (1.3.0):从缓存中克隆 ae466f7262
  • 正在安装 phpspec/prophecy (v1.10.2):正在下载 (0%) 无法从 dist 下载 phpspec/prophecy:无法针对 github.com 进行身份验证 现在尝试从源下载
  • 安装 phpspec/prophecy (v1.10.2):从缓存中克隆 b4400efc9d
  • 正在安装 phar-io/version (2.0.1):正在下载 (0%) 无法从 dist 下载 phar-io/version:无法针对 github.com 进行身份验证 现在尝试从源下载
  • 安装 phar-io/version (2.0.1):从缓存中克隆 45a2ec53a7
  • 正在安装 phar-io/manifest (1.0.3):正在下载 (0%) 无法从 dist 下载 phar-io/manifest:无法针对 github.com 进行身份验证 现在尝试从源下载
  • 安装 phar-io/manifest (1.0.3):从缓存中克隆 7761fcacf0
  • 安装 myclabs/deep-copy (1.9.5):正在下载 (0%) 无法从 dist 下载 myclabs/deep-copy:无法针对 github.com 进行身份验证 现在尝试从源下载
  • 安装 myclabs/deep-copy (1.9.5):从缓存中克隆 b2c28789e8
  • 正在安装 phpunit/phpunit (7.5.20):正在下载 (0%) 无法从 dist 下载 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' && git remote set-url composer 'https://github.com/sebastianbergmann/phpunit.git'" 超过了 300 秒的超时时间。 > 安装 [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap -authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--] []...

错误:服务“contianer_name”无法构建:命令“/bin/sh -c composer install && rm $(which composer)”返回非零代码:1

【问题讨论】:

  • 您好,phpunit 的 github 似乎需要很长时间才能获取。你重试了吗?可能服务器请求太多。
  • 是的,我认为这是因为 Github 是速率限制的。我相信我在下面找到了答案。

标签: php git docker github composer-php


【解决方案1】:

我们已经看到了同样的情况,并怀疑它是自 1.10 以来 Composer 行为的变化,或者是 GitHub 端的速率限制变化。

看起来它首先尝试 HTTP 下载(Composer 没有显示确切的 HTTP 错误确实无济于事),然后回退到克隆源。后者工作了一段时间,但也会导致超时,可能是因为 GitHub 也限制了这些。

无论哪种方式,为我们解决的问题是确保 Composer 对 GitHub 的 HTTP 请求经过身份验证。在此处查看文档:https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens

  1. Create GitHub 上的 OAuth 令牌。 Read more 这个。

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

【讨论】:

猜你喜欢
  • 2021-08-14
  • 2019-10-06
  • 2021-08-10
  • 1970-01-01
  • 2020-08-19
  • 2016-06-21
  • 2019-08-11
  • 2014-12-26
  • 2022-12-06
相关资源
最近更新 更多