phpのcomposer updateをしようと思ったらエラーが出てしまった。
]$ composer update Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 4 installs, 5 updates, 0 removals - Updating paragonie/random_compat (v2.0.15 => v2.0.17): The following exception is caused by a lack of memory or swap, or not having swap configured Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details [ErrorException] proc_open(): fork failed - Cannot allocate memory update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [--with-dependencies] [--with-all-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [-i|--interactive] [--root-reqs] [--] [<packages>]...
Cannot alocate memoryとか出てるからメモリ不足みたいな事なんですかねぇ。
エラー内容を見ていこう。
- Updating paragonie/random_compat (v2.0.15 => v2.0.17): The following exception is caused by a lack of memory or swap, or not having swap configured
Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details
↓翻訳
- paragonie / random_compatの更新(v2.0.15 => v2.0.17):次の例外は、メモリまたはスワップが不足しているか、またはスワップが設定されていないことが原因です
詳細については、https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errorsをチェックしてください。
スワップを設定していないってどういう事やろか。
とりあえず
https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors
を見てみるか。
「free -m」をやってみろと書いてある。freeはメモリ使用量などを確認するUNIXコマンドですね。
$ free -m total used free shared buffers cached Mem: 987 442 545 0 2 83 -/+ buffers/cache: 356 631 Swap: 0 0 0
Swapの所を見ると割り当てはゼロのようです。
Swapを有効にする方法が上記のURLで紹介されています。
awsだとrootユーザーで作業する事は少ないと思うので、sudoを付けて以下のようにします。
$ sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 $ sudo /sbin/mkswap /var/swap.1 $ sudo /sbin/swapon /var/swap.1
再度composer updateしたらうまくいきました。
$ composer update Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 4 installs, 5 updates, 0 removals - Updating paragonie/random_compat (v2.0.15 => v2.0.17): Loading from cache - Updating swiftmailer/swiftmailer (v6.0.2 => v6.1.2): Downloading (100%) - Updating laravel/framework (v5.6.26 => v5.6.27): Loading from cache - Updating fzaninotto/faker (v1.7.1 => v1.8.0): Downloading (100%) - Updating sebastian/comparator (3.0.1 => 3.0.2): Downloading (100%) - Installing alaouy/youtube (2.2.1): Downloading (100%) - Installing doctrine/event-manager (v1.0.0): Downloading (100%) - Installing doctrine/cache (v1.7.1): Downloading (100%) - Installing doctrine/dbal (v2.8.0): Downloading (100%) doctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver) Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover Discovered Package: alaouy/youtube Discovered Package: davejamesmiller/laravel-breadcrumbs Discovered Package: fideloper/proxy Discovered Package: laravel/tinker Discovered Package: laravelcollective/html Discovered Package: nunomaduro/collision Package manifest generated successfully.
おしまい。