当我运行composer update
时,我会收到一些有线输出。
这是我的composer.json看起来像。
{
"name": "laravel/laravel",
"description": "The Laravel Framework.", "keywords": ["framework", "laravel"],
"license": "MIT",
"repositories": [{
"type": "vcs",
"url": "https://github.com/Zizaco/ardent.git"
}],
"require-dev": {
"phpunit/phpunit": "4.3.*"
},
"require": {
"laravel/framework": "4.2.*",
"laravelbook/ardent": "dev-master as 2.4.0",
"zizaco/entrust": "dev-master",
"sebklaus/profiler": "dev-master",
"doctrine/dbal": "dev-master"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations", "app/database/seeds", "app/tests",
"app/libraries"
]
},
"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"
}
我该如何解决?
答案 0 :(得分:27)
您的软件依赖项存在不兼容的版本冲突。
同时您要安装任何Laravel 4.2.x版本,并从其主分支安装“zizaco / entrust”。而且这个主分支至少需要Laravel 5.0(粗略地说)。
问题来自对分支的依赖。 zizaco /委托曾经在其主分支中使用Laravel 4.2,并且您可以在当天安装依赖项。但是,当此分支使用不兼容的版本要求进行更新时,您将永远无法运行composer update
并获得更新的依赖项。
始终使用标记版本!理想情况下,您使用允许兼容更新的宽松版本要求。这应该表示为代号为两位数的版本要求:~1.2
将安装版本1.2.0及更高版本(如1.2.99或1.2.100),以及1.3及更高版本。如果您需要某个补丁版本:Caret-three-number版本^1.2.10
将安装1.2.10或更高版本,也将安装1.3及更高版本。
使用此版本要求而不是dev-master
将允许您在主分支中使用已发布的版本而不是不稳定状态,并允许您处理仍适用于Laravel 4.2的最新版本。我想这将是zizaco /委托版本1.3.0,但版本1.2也符合条件。使用"zizaco/entrust": "~1.2"
。
答案 1 :(得分:23)
我面临同样的问题。我正在使用' Lumen'微服务框架。 我最近通过安装两个软件包解决了同样的问题: -
安装完成后,需要执行以下命令: - 作曲家更新
希望,它将解决问题。我在我的系统上工作。
答案 2 :(得分:20)
运行此命令:
composer install --ignore-platform-reqs
或
composer update --ignore-platform-reqs
答案 3 :(得分:8)
我使用 Windows 10 机器与 PHP 8 和 Lavarel 8 一起工作,但我遇到了同样的错误,我使用了以下命令:-
composer update --ignore-platform-reqs
无论版本冲突如何,都更新所有包。
答案 4 :(得分:7)
这些dev-master
是自动添加的吗?避免将它们作为不必要的版本约束,对于“任何合适的版本”使用"*"
,或"@dev"
如果您不介意开发包。我的猜测是Entrust是潜在的麻烦制造者。
此外,"minimum-stability": "stable"
会施加额外的限制,
"minimum-stability": "dev",
"prefer-stable": true
更无冲突,认为这是一条经验法则。
答案 5 :(得分:2)
我解决了将'laravel/framework'
依赖版本从"^8.0"
设置为"^7.0"
的相同问题。
运行composer update --ignore-platform-reqs
后就可以了
答案 6 :(得分:1)
在composer.json
中的"barryvdh/laravel-cors": "^0.7.3"
数组末尾添加require
保存composer.json并运行composer update
你完成了!
答案 7 :(得分:0)
“配置”:{ “平台”:{ “ ext-pcntl”:“ 7.2”, “ ext-posix”:“ 7.2” } }
答案 8 :(得分:0)
原因:
发生此错误是因为您的项目文件夹归root用户所有。
解决方案
将所有权更改为当前登录的用户,而不是root用户。如果只有root用户作为唯一用户,请创建另一个具有root特权的用户。
$ sudo chown -R 当前用户 / my / project / directory /
然后
$ composer安装
答案 9 :(得分:0)
我在Laravel 5.8中遇到了这个问题,我要做的是对每个库以及所有正确安装的库执行composer require
。
像这样:
而不是将其添加到composer.json文件或指定版本:
composer require msurguy/honeypot: dev-master
相反,我没有指定任何版本:
composer require msurguy/honeypot
我希望它会有所帮助,谢谢
答案 10 :(得分:0)
我通过添加"zizaco/entrust": "*"
而不是"zizaco/entrust": "~1.2"
解决了相同的错误。
答案 11 :(得分:0)
如果您使用的是 php ^8.0
打开可用的 php 版本列表
sudo update-alternatives --config php
切换到PHP 7.2以上的旧版本,选择其中之一 然后更新作曲家
composer update
答案 12 :(得分:0)
我面临同样的问题。通过安装包使用 Composer
我最近通过安装两个软件包解决了同样的问题:-
composer create-project laravel/laravel myapp
作曲家更新
<块引用>作曲家更新 --ignore-platform-reqs
或
<块引用>composer install --ignore-platform-reqs
检查启动服务器
<块引用>php artisan serve
答案 13 :(得分:-7)
只需激活php.ini文件中的curl
即可;extension=php_curl.dll
到
extension=php_curl.dll
然后 composer install