【问题标题】:Composer hangs on "Resolving dependencies through SAT" on 4.2Composer 在 4.2 上挂起“通过 SAT 解决依赖关系”
【发布时间】:2016-10-15 13:30:27
【问题描述】:

我尝试过的事情:

  • 删除除 Laravel(版本 4.2.*)之外的所有内容 - 这已完成,但仍会挂起大约 5 分钟
  • 更新作曲家
  • 删除 /vendor
  • 进行干净的 Laravel 4.2 安装(挂起大约 3 分钟)
  • 进行干净的 Laravel 5 安装(根本没有挂起)
  • 完全关闭 xdebug(似乎没有什么不同)

对于我所有的包,我已经看到 composer 完成了,但只有当我让它在一夜之间运行时。我根本无法部署到伪造,因为它超时了!这只是在大约两周前才开始发生的。

【问题讨论】:

  • Turning off xdebug completely (doesn't seem to make a difference) - 这应该会产生巨大的不同,尤其是在没有 SSD 或没有高端 Intel 芯片或两者兼有的机器上。您确定它已关闭吗?我之前在我同事的另一台开发机器上看到过这个问题,作曲家需要几个小时才能进行简单的更新。这个问题最终是一个损坏的作曲家安装。擦除作曲家工件的系统并重新安装效果很好。
  • 好的,是的,它确实有很大的不同(在错误的 php.ini 中将其关闭),但它仍然慢到足以让我的伪造服务器超时。底线是当事情从需要 10 分钟到 10 小时(即使启用了 xdebug)时,会有更大的事情发生。
  • 我不反对你。我认为这里还有其他事情发生,可能是 DNS 解析问题或防火墙问题。你能strace /usr/bin/composer 看看在执行composer update 时发生了什么吗? sidenote strace 会倾倒很多东西,所以它有点像大海捞针,但它绝对有用。但是,可能有更好的方法来调试它。我还找到了composer config --global repo.packagist composer https://packagist.org 的提示,该提示要求设置使用 HTTPS,并且似乎为其他人解决了这个问题。
  • 它发生在我们所有的开发环境中,即使是全新的 4.2 安装。我几乎可以肯定这是由于 Laravel 4.2 的依赖,因为此时 5.2 根本没有挂起。我之前在尝试调试时切换到 https,可能会有所帮助,但基准测试已经完成。
  • 我可以看看你的composer.json,以便我可以尝试在本地安装它吗?我们维护 4.2 LTS 堆栈,没有这个问题。

标签: laravel laravel-4 composer-php forge


【解决方案1】:

对于所有正在寻找答案的人...以下是帮助提高性能的方法:

  1. 提交 composer.lock:如果你还没有这样做,你可以运行 'composer 在一台机器上更新'然后提交你的锁定文件然后运行 'composer install' 在彼此的机器上。这节省了我们的部署过程!
  2. 通常将版本声明为 尽可能明确。

和/或

  1. 更新你的 Laravel 版本!

【讨论】:

  • 实际上并没有解决问题,但让我想起了composer.lock文件,我只是删除了它,问题就解决了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-05
  • 2019-12-17
  • 1970-01-01
  • 1970-01-01
  • 2015-10-27
  • 2014-12-18
  • 1970-01-01
相关资源
最近更新 更多