作曲家在更新时被杀死

 庄大运 发布于 2023-02-09 13:08

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

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

我在互联网上找了问题,看到内存是问题,我想我没有足够的RAM可用,我已经检查了这个我有大约411mb免费.作曲家真的需要更多的内存吗?有谁可以帮助我吗?

谢谢

3 个回答
  • 不幸的是,作曲家需要大量的RAM和处理能力.以下是我所做的一些事情,这些事情相结合,使这个过程变得可以忍受.这是我的云围栏env.

      您可能只是耗尽了RAM.启用交换:https://www.digitalocean.com/community/search?query=how+to+add+ swap (注意:我认为最佳做法是添加一个单独的分区.Digitalocean的指南适用于他们的环境)

      service mysql stop (杀死你的DB/mem-hog服务以释放一些RAM - 不要忘记再次启动它!)

      使用运行的辅助终端会话top来监视内存/交换消耗,直到进程完成.

      composer.phar update --prefer-dist -vvv(详细输出[在工作时仍然在某些点挂起]并使用distro zip文件).也许试一试--dry-run

      很明显,Composer在旧版本的PHP中运行速度较慢(例如5.3x).对我来说,5.5.9仍然很慢......

    2023-02-09 13:11 回答
  • "被杀"消息通常意味着您的进程消耗了太多内存,因此您可能只需要为系统添加更多内存(如果可能).在撰写此答案时,我不得不将虚拟机的内存增加到至少768MB,以便composer update在某些情况下开始工作.

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

      运行composer update在本地环境(无论是本地物理机或虚拟开发机)

      上传或git pushcomposer.lock文件

      composer install在实时服务器上运行

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

    在这里阅读更多内容:https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file

    2023-02-09 13:11 回答
  • 如果像我一样,你正在使用一些缺少内存的微型虚拟机,那么创建交换文件就可以了:

    free -m
    mkdir -p /var/_swap_
    cd /var/_swap_
    #Here, 1M * 2000 ~= 2GB of swap memory
    dd if=/dev/zero of=swapfile bs=1M count=2000
    mkswap swapfile
    swapon swapfile
    chmod 600 swapfile
    echo "/var/_swap_/swapfile none swap sw 0 0" >> /etc/fstab
    #cat /proc/meminfo
    free -m
    

    顺便说一下,随意选择文件的其他位置/文件名/大小.
    /var可能不是最好的地方,但我不知道哪个地方会,并且很少关心,因为小型服务器主要用于测试目的.

    2023-02-09 13:11 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有