2014-01-21 211 views
0

几周前,我在服务器上做了同样的事情,但现在我不能。这是我的错误输出:作曲家无法安装和更新

作曲家安装

Loading composer repositories with package information 
Installing dependencies (including require-dev) 
PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:974 
Stack trace: 
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 974, Array) 
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(974): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array) 
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(793): Symfony\Component\Console\Application->getSttyColumns() 
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(754): Symfony\Component\Console\Application->getTerminalDimensions() 
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(688): Symfony\Component\Console\Application->getTerminalWidth() 
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 974 

Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:974 
Stack trace: 
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 974, Array) 
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(974): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array) 
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(793): Symfony\Component\Console\Application->getSttyColumns() 
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(754): Symfony\Component\Console\Application->getTerminalDimensions() 
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(688): Symfony\Component\Console\Application->getTerminalWidth() 
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 974` 

回答

3

我曾经有过这个问题,增加内存限制解决它。你可以试试看。

+0

你会如何做到这一点?在php.ini文件中? –

1

将composer.lock添加到跟踪文件解决了问题。

git add -f composer.lock 
git add . 
git commit -m 'remove composer.lock from ignored files' 
git push 

然后,

git clone .... 
服务器

问题解决。

无论如何。

+0

您必须提交'composer.lock'文件,否则对'composer install'的调用实际上会像'composer update'一样运行,这会耗费内存,并且可能不会安装您测试的版本。 – Sven

0

我在update命令下遇到同样的问题解决了我的问题。

sudo作曲家自我更新

//这会设置记忆。 PHP -dmemory_limit = -1作曲家更新

sudo的PHP -dmemory_limit = -1作曲家更新

1

如果你像流浪者,例如虚拟环境下运行,然后确保交换被启用。下面的脚本运行以创建交换

#!/bin/sh 

# size of swapfile in megabytes 
swapsize=512 

# does the swap file already exist? 
grep -q "swapfile" /etc/fstab 

# if not then create it 
if [ $? -ne 0 ]; then 
    echo 'swapfile not found. Adding swapfile.' 
    fallocate -l ${swapsize}M /swapfile 
    chmod 600 /swapfile 
    mkswap /swapfile 
    swapon /swapfile 
    echo '/swapfile none swap defaults 0 0' >> /etc/fstab 
else 
    echo 'swapfile found. No changes made.' 
fi 

# output results to terminal 
cat /proc/swaps 
cat /proc/meminfo | grep Swap 

来源:http://www.nyayapati.com/srao/2014/05/youcompleteme-install-fails-due-to-internal-compiler-error/

0

要解决此问题,增加交换内存:

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 
/sbin/mkswap /var/swap.1 
/sbin/swapon /var/swap.1 
0

为了解决已运行2命令这个问题。
SHAILESH @ $的ubuntu的/ var/WWW $ sudo的/ bin中/ DD如果=的/ dev/=/VAR/swap.1 BS = 1M的零数= 1024
输出将看起来像这样:
1024 + 0记录 1024 + 0记录了 1073741824字节(GB 1.1)复制,13.1359 S,81.7 MB/s的

和运行
SHAILESH @ Ubuntu的$ sudo的/ sbin目录/再用mkswap在/ var /交换后。1
输出将是这样的:
设置交换空间的版本1,大小= 1048572昆明植物研究所 没有标签,UUID = 486b676c-aa2a-4329-9783-6d1e6a9eb0a5

和最后的命令,你必须运行
shailesh @ ubuntu $ sudo/sbin/swapon /var/swap.1

现在运行composer update并保存时间。