【发布时间】:2020-10-09 17:50:55
【问题描述】:
尝试初始化 PHP/Laravel 项目(通过运行 composer install),我遇到了与此处描述的完全相同的问题:Where to find this Client.php laravel
我尝试通过使用composer require 来升级与较新的 PHP 版本交互不佳的包,并尝试升级有问题的包,但它并不顺利:
$ composer require sentry/sentry-laravel:1.8.0
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.10.7/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223
Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/Cellar/composer/1.10.7/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223
Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more info on how to handle out of memory errors.
我在文档中阅读了如何增加内存限制(是的 - 最容易通过在运行 composer 之前设置 COMPOSER_MEMORY_LIMIT 环境变量,就像很多人提到的那样),但在我这样做之前,我想了解的是项目有问题耗尽 1536Mb 内存限制,如果是,如何理解和解决问题?更具体地说,这个命令除了替换composer.json 文件中的版本要求之外还有什么作用?如果我只是手动编辑composer.json 文件,然后从干净的表中运行compose install(在擦除vendor/ 目录以及写入项目目录的任何其他内容之后),可能会出现什么问题 - 版本会与检测到的其他依赖项冲突吗?
【问题讨论】:
-
如果你把它放在
composer.json,它可以工作吗?尝试删除供应商目录和composer install。 composer.json 中有更新后的脚本吗? -
我没有“为什么”的解决方案,但您可以通过在 CLI 命令中添加“环境变量”来缓解这种情况:
COMPOSER_MEMORY_LIMIT=-1 composer ... -
您的设置没有问题。只是composer实际上需要大量内存来解析整个依赖树。
-
stackoverflow.com/a/62043521/2188922这个答案可能会给你一些指导如何安排交换来克服这个问题
-
@TimeLewis... 当然,看起来很明显,但我不敢这样做,因为我也需要使用计算机(Mac)进行其他工作,并且几乎拥有 16gb 的 RAM即使没有这样的尝试,今天也已经筋疲力尽,SSD 几乎已满,造成巨大的垃圾。
标签: php laravel composer-php