编写器更新故障



我使用laravel + composer。我正在加载way/generators包,当我运行composer update时给我这个错误:

正在加载包含包信息的编写器存储库依赖项(包括requirements -dev)

致命错误:允许的内存大小为536870912字节耗尽(已尝试)分配67108864字节)phar:///usr/地方/地窖/作曲家/1.0.0-alpha8/libexec/composer.phar/src/作曲家/DependencyResolver/Solver.php第170行

我认为,这是因为作曲家更新使用了所有的内存。

php -d memory_limit=1G /usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar update

这个在mac上也可以用。

如果您在RAM较少的服务器上,例如512MB,则需要创建交换内存。以下是你在ubuntu上的操作方法

touch swap.img
chmod 600 swap.img

为交换空间使用1GB

dd if=/dev/zero of=/var/swap.img bs=1024k count=1000
mkswap /var/swap.img
swapon /var/swap.img

这是全文https://www.digitalocean.com/community/tutorials/how-to-configure-virtual-memory-swap-file-on-a-vps

我在安装laravel时遇到了问题。原命令为:

composer global require "laravel/installer=~1.1"

和错误信息是:

Loading composer repositories with package information Updating dependencies (including require-dev)
Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 67108864 bytes) in phar:///usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php on line 170

下面的命令应该可以工作:

php -dmemory_limit=1G /usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar global require "laravel/installer=~1.1"

在我的情况下,我遇到了同样的问题,并设法通过停止Apache和MySQL服务来解决,然后通过composer继续安装laravel应用程序。

sudo service stop apache2接着是sudo service stop mysql stop,这反过来杀死了正在消耗内存的应用程序,然后我继续通过正常的编写器命令安装Laravel,一旦完成,我只是重新启动服务,一切都很好。

我找到了解决方案,在阅读了这篇文章:https://github.com/composer/composer/issues/1898

感谢"Dynom,评论于2013年7月4日"

需要512mb RAM的包管理器已经有点多了,但我也要超过它。有趣的是,我的RAM超过了512 MiB到大约800 MiB RAM(根据我的进程输出)私有的Satis存储库(实际上只是所有人的缓存)Github公共存储库)。否则我不会超过它。仅仅通过添加我的满意存储库,composer消耗了近400 MiB的RAM

对于全局提高PHP CLI memory_limit的所有其他人建议不要那样做。相反,我建议把它放在命令中行,像这样:

php -dmemory_limit=1G {composer location} update 

的例子:

php -dmemory_limit=1G bin/composer.phar update

否则,您可能会错过某些意想不到的内存相关在自己的工作中的行为。

你有composer的最新版本吗?我已经修复了这个问题与一个简单的更新:

sudo composer self-update

相关内容

  • 没有找到相关文章

最新更新