我尝试使用composer update
更新我正在处理的Laravel项目>
但是它挂在Updating dependencies (including require-dev)
上
所以我尝试了诸如更新作曲家,dump-autoload之类的事情,但是似乎没有任何效果。然后我以详细模式运行它:composer update -vvv
而且我在阅读此json时注意到它挂了:
Reading path/to/Composer/repo/https---packagist.org/provider-cordoval$hamcrest-php.json from cache
我尝试在packagist.org上搜索cordoval / hamcrest-php,但找不到它。在我的
composer.json
]中未将其列为依赖项在我的供应商文件夹中搜索,我注意到我使用的
mockery/mockery
包需要hamcrest/hamcrest-php
,但找不到任何与cordoval
相关的内容。
任何想法都出了什么问题以及如何修复它以便可以进行更新?
这是我的composer.json:
{ "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "require": { "laravel/framework": "4.2.*", "iron-io/iron_mq": "dev-master", "phpunit/phpunit": "4.2.*", "mockery/mockery": "dev-master", "xethron/migrations-generator": "dev-master", "mailgun/mailgun-php": "dev-master" }, "autoload": { "classmap": [ "app/commands", "app/controllers", "app/models", "app/database/migrations", "app/database/seeds", "app/tests/TestCase.php" ] }, "scripts": { "post-install-cmd": [ "php artisan clear-compiled", "php artisan optimize" ], "post-update-cmd": [ "php artisan clear-compiled", "php artisan optimize" ], "post-create-project-cmd": [ "php artisan key:generate" ] }, "config": { "preferred-install": "dist" }, "minimum-stability": "stable" }
更新
我已经尝试从composer.json中删除一些软件包,包括“ mockery / mockery”软件包。所做的唯一更改是Composer会挂在另一个文件上。
在使Composer像这样长时间运行后,它最终退出并出现如下错误:
<</path/to/ComposerSetup/bin/composer: line 18: 1356 Segmentation fault php "${dir}/composer.phar" $*
不确定如何处理...
xdebug
扩展名。在我的php.ini
中将其禁用后,作曲家运行起来没有任何问题。composer clear-cache
您的容器或VM需要更多可用内存。请遵循以下指南:https://stackoverflow.com/a/44533437/3518053[第二个选项如果这些步骤不能修复您的作曲家,则系统可能没有足够的可用RAM内存(我遇到了这个问题,症状与您描述的相同)。此时,您有两个选择:
a)增加内存(虚拟机或Docker):
b)生成交换文件(Linux):尝试创建交换文件以提供更多内存:(以上命令来自composer killed while updating)
free -m
mkdir -p /var/_swap_
cd /var/_swap_
#Here, 1M * 2000 ~= 2GB of swap memory
dd if=/dev/zero of=swapfile bs=1M count=2000
mkswap swapfile
swapon swapfile
chmod 600 swapfile
echo "/var/_swap_/swapfile none swap sw 0 0" >> /etc/fstab
#cat /proc/meminfo
free -m
重新启动系统。我今天遇到了同样的问题。根据建议,关闭了xdebug,但没有帮助。验证所有文件都存在。重新启动我的系统,它正常工作。检查您是否正在运行所需的最低PHP版本与composer.json文件中指定的所需php版本进行比较打开终端运行
php -v
交叉检查composer.json文件,请参见下面的示例
"require": { "php": "^7.1.3", }
检查php.ini中[xdebug] zend_extension =“文件/路径”的路径为我工作。首先运行自动加载命令,然后清除缓存并运行更新。composer dump-autoload php artisan cache:clear php artisan view:clear composer update
composer clear-cache
打开终端运行