簡體   English   中英

Composer無法安裝和更新

[英]Composer Fails to Install and Update

幾周前我在服務器上做過同樣的事情,但是現在我做不到。 這是我的錯誤輸出:

作曲家安裝

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`

我曾經遇到這個問題,增加內存限制解決了它。 您可以嘗試一下。

將composer.lock添加到跟蹤的文件即可解決此問題。

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

接着,

git clone ....

在服務器上。

問題解決了。

不管怎么說,還是要謝謝你。

如果您在虛擬環境(例如,vagrant)下運行,請確保啟用交換。 在腳本下運行以創建交換

#!/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/

要解決此問題,請增加交換內存:

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

我在更新命令下遇到了相同的問題,解決了我的問題。

sudo作曲家自我更新

//這將設置內存。 php -dmemory_limit = -1作曲家更新

要么

sudo php -dmemory_limit = -1作曲家更新

在更新具有較大依賴項的symfony項目時也遇到了類似的問題。 創建交換文件有幫助: https : //www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-12-04

要解決此問題,您可以運行2命令。
shailesh @ ubuntu $ / var / www $ sudo / bin / dd if = / dev / zero of = / var / swap.1 bs = 1M count = 1024
輸出將如下所示:
1024 + 0條記錄中的1024 + 0條記錄輸出1073741824字節(1.1 GB)已復制,13.1359 s,81.7 MB / s

在那之后
shailesh @ ubuntu $ sudo / sbin / mkswap /var/swap.1
輸出將像:
設置交換空間版本1,大小= 1048572 KiB無標簽,UUID = 486b676c-aa2a-4329-9783-6d1e6a9eb0a5

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

現在運行作曲家更新並節省時間。

這對我php -dmemory_limit=1GB $(which composer) update

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM