更新时作曲家被杀

新手上路,请多包涵

我遇到了一个问题,我试图在我的 Laravel 4 项目中安装一个新包。但是当我运行 php composer.phar update 我得到这个:

 Loading composer repositories with package information
Updating dependencies (including require-dev)
Killed

我在互联网上寻找问题,发现内存是问题,我认为我没有足够的 RAM 可用,我检查了这个我有大约 411mb 可用。作曲家真的需要更多内存吗?

原文由 cherrycoding 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 301
2 个回答

“Killed”消息通常意味着您的进程消耗了太多内存,因此您可能只需要在可能的情况下向系统添加更多内存。在撰写此答案时,我必须将虚拟机的内存增加到至少 768MB 才能让 composer update 在某些情况下工作。

但是,如果您在实时服务器上执行此操作,则根本不应该使用 composer update 。你应该做的是:

  1. 在内存限制不那么严重的本地环境中运行 composer update (例如直接在您的物理笔记本电脑/台式机上,或在您的笔记本电脑/台式机上运行的 docker 容器/VM)。
  2. 上传或 git push composer.lock 文件。
  3. 在实时服务器上运行 composer install

composer install 然后将从 .lock 文件中读取,每次都获取完全相同的版本,而不是查找每个包的最新版本。这使您的应用程序不太可能崩溃,并且作曲家使用更少的内存。

在此处阅读更多信息: https ://getcomposer.org/doc/01-basic-usage.md#installing-with-composer-lock

或者,您可以将整个 vendor 目录上传到服务器,完全无需运行 composer install ,但是您 应该 运行 composer dump-autoload --optimize

原文由 Andreas 发布,翻译遵循 CC BY-SA 4.0 许可协议

我正在使用:

  • 虚拟盒子
  • 4096 Gb 内存
  • 2个中央处理器
  • 10 GB 硬盘(500 MB 交换)
  • Ubuntu 20.04

跑步:

  • composer update 在 laravel 8 项目文件夹中

没有 为虚拟机设置交换,所以 Virtualbox 创建了一个 500Mb 的交换空间,这还不够。

所以 作曲家 使用 4Gb 的 RAM 和交换。

我给虚拟机提供了更多的交换空间,然后它就工作了。

如下图, composer 使用了我所有的 RAM + 2GB 的交换空间

系统监视器

原文由 vlab22 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题