composer は phpのパッケージ管理システムです。実行ファイルはcomposer.phar でphp archive という圧縮されたされたphpファイル群です。
いつもお世話になっているのですが、composer 自体、メモリを使います。大きなプロジェクトになると、composer update するとメモリが足りない!というエラーメッセージが表示されることがあります。
対処方法1
メモリ制限を外してコマンドラインを実行する
COMPOSER_MEMORY_LIMIT=-1 $(which composer) update
対処方法2
copmoser バージョン2 を使用する
Composer 2.0 is now available!
...
メモリの使用量と速度がかなり改善しているので、できれば乗り換えた方が良いです。
注意:動作しているプロジェクトで使用しているパッケージ群が composer2 に対応している必要があります。プロジェクトをディレクトリバックアップしてから行いましょう。プロジェクトが動作しなくなる可能性があります。
composer 自体は 1,2 を行き来できますので、 あとで1に戻すことができます。
composer アップグレード方法
現在のバージョンを確認します。
composer --version
アップデートします。
# 以下のいずれかを実施してください composer self-update -–2 composer selfupdate -–2
プロジェクトをアップデートします。
composer update
使用しているフレームワーク(Laravel / CakePHP など)のバージョンによっては、不要なこともあります。個人的にはバックアップを取ってから、実行しておいた方が良いと思います。
結論
ホスティングサーバーのデフォルトのcomposer は、バージョン1になっていることがあります。
ホスティングのユーザーパスにcomposer2を置いて、既存のcomposerを使わず、自前のcomposerを使うように最初から設定しておくことがお勧めです。
おまけ
以下は、composer1 でdryrun した時ですが、#StandWithUkraine のハッシュタグが付いていました。
$ composer --dry-run update Loading composer repositories with package information Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/ Info from https://repo.packagist.org: #StandWithUkraine Updating dependencies (including require-dev)