📌

composer requireで out of memory errors

2020/11/24に公開

エラー

メモリが確保できずout of memory errorが発生する

PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///Users/hoge/.anyenv/envs/phpenv/versions/7.3.16/composer/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///Users/hoge/.anyenv/envs/phpenv/versions/7.3.16/composer/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

日本語訳

PHP の致命的なエラー。 許容メモリサイズ 1610612736 バイトを使い果たしました (4096 バイトを割り当てようとしました) 

解決方法

使用できるメモリを指定してcomposerを実行する。
COMPOSER_MEMORY_LIMIT変数が定義されていれば、そのメモリ量を上限にして実行してくれる。
https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors

$ COMPOSER_MEMORY_LIMIT=-1 composer require --dev barryvdh/laravel-ide-helper

余談

composerはphpで動くので使用できるメモリはmemory_limitに影響される。
しかし、memory_limitが1.5GB未満の時はcomposer内部で1.5GBまでメモリ確保する。
https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors

Discussion