我一年前用Laravel 5.5安装了Homestead。
现在我想升级到Laravel 5.6。
我按照here的说明升级了Homestead,
vagrant box update
git pull origin master
这也迫使我也将vagrant
升级到2.1.2
。
现在,当我登录时
vagrant ssh
我无法升级到Laravel 5.6,因为运行composer update
时会收到以下警告:
使用软件包信息加载composer存储库更新 依赖项(包括require-dev)您的要求不能是 解决为一组可安装的软件包。
问题1 -此软件包需要php> = 7.1.3,但您的PHP版本(7.0.27;通过config.platform(实际:7.1.7)覆盖的软件包)不需要 满足那个要求。问题2 -laravel / framework v5.6.9需要php ^ 7.1.3->您的PHP版本(7.1.7-1 + ubuntu16.04.1 + deb.sury.org + 1)被覆盖 “ config.platform.php”版本(7.0.27)不满足要求 要求。
如果我在无业游民的机器中致电php -v
,我会得到
PHP 7.1.7-1 + ubuntu16.04.1 + deb.sury.org + 1(cli)(内置:2017年7月7日09:41:45)(NTS)
这没关系,因为Laravel只需要PHP 7.1.3
,但是升级却陷入困境,因为作曲家声称我正在使用PHP 7.0.27
。
那是为什么,我该如何解决?
我什至尝试
sudo apt-get update
sudo apt-get upgrade
如建议的here,但仍然无法正常工作。一些软件包已保留在升级中:
以下软件包已保留:libdrm-amdgpu1 libdrm2 libegl1-mesa libgbm1 libgd3 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libwayland-egl1-mesa mssql-tools open-vm-tools php7.1-bcmath php7.1-cli php7.1-通用php7.1-curl php7.1-dev php7.1-fpm php7.1-gd php7.1-imap php7.1-intl php7.1-json php7.1-mbstring php7.1-mysql php7.1-opcache php7.1-pgsql php7.1-readline php7.1-soap php7.1-sqlite3 php7.1-xml php7.1-zip 0 升级,0个新安装,0个要删除和30个未升级。
答案 0 :(得分:2)
解决方案实际上是您的问题的一部分。如果我们再看看作曲家的错误:
问题1-此软件包需要php> = 7.1.3,但您的PHP版本(7.0.27;通过 config.platform [...]
覆盖了软件包
这意味着您在composer.json
中确实有类似以下内容,需要在更新之前进行更改或删除:
"config": {
"platform": {
"php": "7.0.7"
},
"preferred-install": "dist",
"optimize-autoloader": true
}
您可以将其更改为实际平台版本或完全删除它。它用于模拟环境,如果您想检查例如服务器上有除开发计算机以外的其他PHP版本时是否可以在服务器上运行composer install
,该环境将非常方便。