Composer update `以下异常是由于内存不足和未配置 swap 造成的`错误在 vagrant 中
Composer update `The following exception is caused by a lack of memory and not having swap configured` error in vagrant
我得到了 php5.5,在 vagrant VirtualBox 环境中安装了 composer。
当我尝试任何作曲家的命令时,随机出现以下错误:
The following exception is caused by a lack of memory and not having swap configured
我该如何解决这个问题?
This thread 建议他们不会解决这个问题。
这里有两个解决方法。您可以单独使用,也可以同时使用。
第一个解决方法:增加命令的内存限制
在流浪机器中。增加当前命令的 php 内存限制。 运行:
php -dmemory_limit=2G /path/to/composer update
第二种解决方法:增加客户机内存
将此配置添加到您的 vagrant 文件中,这样您就可以临时增加分配的内存:
$MEMORY = ENV.has_key?('VM_MEMORY') ? ENV['VM_MEMORY'] : "512"
Vagrant.configure("2") do |config|
[...]
config.vm.provider "virtualbox" do |v|
[...]
v.memory = $MEMORY
[...]
end
[...]
end
然后按如下方式重新加载你的 vagrant 机器:VM_MEMORY=2048 vagrant reload
然后,在你的流浪机器中,运行 composer update
。
转到 php.ini 文件并更新
memory_limit 到 512MB 或 1G
这不是错误并修复它 - 要启用交换,您可以使用例如:
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
参考:https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors
希望对您有所帮助:)
有时交换文件没有足够的内存来更新作曲家,所以创建一个新文件:
(假设现有的 /swapfile 有 2G,用你的驱动器的 8G 创建新的 /swapfile1 space)
$ sudo fallocate -l 8G /swapfile1
$ sudo chmod 600 /swapfile1
$ sudo mkswap /swapfile1
$ sudo swapon /swapfile1
composer 更新后,您可以删除它并只保留初始文件:
$ sudo swapoff /swapfile1
$ sudo rm /swapfile1
这解决了我的问题:
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
这可能会临时有用并解决问题。永久添加到交换关注 this
查看设备上的可用内存:free -m
我得到了 php5.5,在 vagrant VirtualBox 环境中安装了 composer。
当我尝试任何作曲家的命令时,随机出现以下错误:
The following exception is caused by a lack of memory and not having swap configured
我该如何解决这个问题?
This thread 建议他们不会解决这个问题。
这里有两个解决方法。您可以单独使用,也可以同时使用。
第一个解决方法:增加命令的内存限制
在流浪机器中。增加当前命令的 php 内存限制。 运行:
php -dmemory_limit=2G /path/to/composer update
第二种解决方法:增加客户机内存
将此配置添加到您的 vagrant 文件中,这样您就可以临时增加分配的内存:
$MEMORY = ENV.has_key?('VM_MEMORY') ? ENV['VM_MEMORY'] : "512"
Vagrant.configure("2") do |config|
[...]
config.vm.provider "virtualbox" do |v|
[...]
v.memory = $MEMORY
[...]
end
[...]
end
然后按如下方式重新加载你的 vagrant 机器:VM_MEMORY=2048 vagrant reload
然后,在你的流浪机器中,运行 composer update
。
转到 php.ini 文件并更新 memory_limit 到 512MB 或 1G
这不是错误并修复它 - 要启用交换,您可以使用例如:
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
参考:https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors
希望对您有所帮助:)
有时交换文件没有足够的内存来更新作曲家,所以创建一个新文件:
(假设现有的 /swapfile 有 2G,用你的驱动器的 8G 创建新的 /swapfile1 space)
$ sudo fallocate -l 8G /swapfile1
$ sudo chmod 600 /swapfile1
$ sudo mkswap /swapfile1
$ sudo swapon /swapfile1
composer 更新后,您可以删除它并只保留初始文件:
$ sudo swapoff /swapfile1
$ sudo rm /swapfile1
这解决了我的问题:
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
这可能会临时有用并解决问题。永久添加到交换关注 this
查看设备上的可用内存:free -m