当前位置: 首页 > 知识库问答 >
问题:

编写器在每个项目上都内存不足,Mac OS X

濮阳宜
2023-03-14

昨天,我尝试使用Composer在我的Laravel 4项目中的一个项目上安装aws/aws sdk php,我记不清事件链,但它没有成功安装。从那以后,我一直收到Composer内存不足的错误-致命错误:允许的内存大小为536870912字节,已耗尽(尝试分配32字节)phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleWatchGraph.php 第52行

我将php.ini内存限制增加到了-1,这在我的开发和生产环境中都仍然存在(生产是CentOS6)。如果在运行composer\u update时通过CLI增加内存限制,安装将成功完成,但这需要很长时间。

是否有某种缓存,我需要清除,以防止Composer运行内存溢出?我有一种感觉,每次我运行作曲家更新时,它仍然试图安装AWS SDK。

编写器文件

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "laravel/framework": "4.0.*",
        "rtablada/package-installer": "dev-master",
        "mogreet/mogreet-php": "dev-master",
        "twilio/laratwilio": "dev-master",
        "balloon/elephant.io": "dev-master",
        "facebook/php-sdk": "dev-master",
        "way/generators": "dev-master",
        "codesleeve/asset-pipeline": "dev-master",
        "natxet/CssMin": "dev-master"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php",
            "app/libraries"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "dev"
}

共有3个答案

丰誉
2023-03-14

试试这个。它解决了我的问题。我想更好的方法来解决它,而不是更新内存。

sudo composer self-update
太叔灿
2023-03-14

目前,Composer上有一个bug,导致内存耗尽。

如果你这样做

composer install

然后删除供应商内的文件

rm -rf vendor/laravel

并且做

composer update

你会得到这个错误。这是一个bug,它不应该耗尽内存。

现在你可以通过做以下事情来修复它:

php -d memory_limit=-1 /usr/local/bin/composer update

另外,检查此线程,他们将修复此问题。

薄瑞
2023-03-14

编辑:在继续之前,请务必确保您运行的是最新版本的composer,您可以通过composer自我更新

当您运行作曲家更新时,它将为您的每个库(或最新版本)计算最新的gitref,然后将安装该库的版本。然后,它将这些版本存储在composer.lock文件中。

当您运行作曲家安装时,它只是安装composer.lock文件中定义的版本。

之所以composer update花费如此长的时间并占用如此多的内存,是因为它必须跟踪每个库的版本,将其与您在composer.json中定义的版本进行比较,然后检查该库的所有依赖项。这是一个相当密集的过程。

我发现使用hhvm(您可以在这里安装它)运行作曲家大大加快了作曲家更新过程。

除此之外,您只需在php.ini文件中增加高内存使用率即可。确保更新与CLI相关的版本。

编辑:您不应该在正式生产环境中运行作曲家更新。您应该只在开发时更新依赖项,然后在正式生产环境中使用作曲家安装安装最后使用的作曲家依赖项集。

 类似资料:
  • 在我的构造函数中,我可能不得不缩短它。虽然我第一次尝试就开始工作了。记录cat消息: 05-08 19:09:46.035:E/dalvikvm-heap(420):28字节分配内存不足。

  • 在从Github复制文件之后,我正在从事一个laravel项目。 当运行作曲家更新命令时,下面的错误来了 VirtualAlloc()失败:[0x00000008]内存资源不足,无法处理此命令。 VirtualAlloc()失败:[0x00000008]内存资源不足,无法处理此命令。 PHP致命错误:第90行的phar://C:/composer/composer.phar/src/compose

  • 我试图通过Composer在客户端的Magento 2上安装一个扩展,但我遇到了旧的PHP内存溢出错误。 我的客户端由Bluehost托管,不幸的是,这意味着我不能直接进入并更改php.ini中的内存限制,因为它是只读的,而且它们的cPanel MultiHP ini编辑器不会影响SSH。我的客户机已经与Bluehost联系过,他们被告知Bluehost不允许更改SSH内存限制,但是,我的客户机最

  • 我正在努力解决古老的字谜问题。多亏了许多教程,我能够迭代一组字符串,递归地找到所有的排列,然后将它们与英语单词列表进行比较。我发现的问题是,在大约三个单词之后(通常是关于“变形”之类的东西),我会得到一个OutOfMemory错误。我试着把我的批分成小的集合,因为它似乎是消耗我所有内存的递归部分。但即使只是“变形”也把它锁起来了... 编辑:根据出色的反馈,我已经将生成器从排列更改为工作查找: 它

  • 问题内容: 我今天遇到一个奇怪的问题。对于其他人来说,这可能是一个简单的答案,但这让我感到困惑。为什么下面的代码会导致内存错误? 我得到了这两个错误之一…第一个是在节点的解释器中运行此代码时,第二个是通过nodeunit运行它时: 严重错误:CALL_AND_RETRY_2分配失败-内存不足 严重错误:JS分配失败-内存不足 问题答案: 当我尝试访问阵列时会发生这种情况。但是获取长度却没有。

  • 问题内容: 编译Android项目时如何解决? 升级到Android Studio版本1后,我得到了这个。但是,我不认为这是问题所在。当我开始将应用程序升级到SDK 21之前(这是在SDK 20之前)的可能性最大。但是我也不是很确定。 我在Google周围搜索了一些 修复程序,但找不到可行的解决方案。大多数修复是针对Eclipse IDE的。 这是编译时遇到的完整logcat错误: 是因为我使用了