当我运行 composer update
时,我收到了一些有线输出。
https://i.stack.imgur.com/hVM3L.png
这是我的 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"
}
我该如何解决?
运行此命令:
作曲家安装--ignore-platform-reqs
或者
作曲家更新--ignore-platform-reqs
您的软件依赖项存在不兼容的版本冲突。
同时你想安装任何 Laravel 4.2.x 版本,并从它的 master 分支安装“zizaco/entrust”。而那个 master 分支至少需要 Laravel 5.0(粗略地说)。
问题来自对分支的依赖。很可能 zizaco/entrust 包曾经在其 master 分支中使用 Laravel 4.2,并且您当时能够安装您的依赖项。但是,当此分支更新为不兼容的版本要求时,您将永远无法运行 composer update
并获得更新的依赖项。
始终使用标记版本!理想情况下,您使用允许兼容更新的宽松版本要求。这应该表示为两个波浪号的版本要求:~1.2
将安装 1.2.0 及更高版本(如 1.2.99 或 1.2.100),以及 1.3 及更高版本。如果您需要某个补丁版本:插入符号三号版本 ^1.2.10
将安装 1.2.10 或更高版本,以及 1.3 及更高版本。
使用此版本要求而不是 dev-master
将允许您使用已发布版本而不是 master 分支中的不稳定状态,并允许您处理仍然适用于 Laravel 4.2 的最新版本。我想那将是 zizaco/entrust 1.3.0 版,但 1.2 版也符合条件。使用 "zizaco/entrust": "~1.2"
。
"zizaco/entrust": "~1.2"
zizaco/entrust
需要 Laravel 5.0
会很有帮助。
zizaco/entrust
需要 illuminate/support ^5.0
,如果您知道“Laravel”和“Illuminate”基本相同,那么结论应该是正确的。
我面临同样的问题。我正在使用“流明”微服务框架。我最近通过安装两个软件包解决了同样的问题:-
sudo apt-get install php7.0-mbstring、sudo apt-get install php7.0-xml 或 sudo apt-get install php-xml
安装后,您需要执行此命令:- composer update
希望,它会解决问题。我在我的系统上工作。
sudo apt-get install php-xml
我使用 Windows 10 机器与 PHP 8 和 Lavarel 8 一起工作,我得到了同样的错误,我使用了以下命令:-
composer update --ignore-platform-reqs
无论版本冲突如何,都更新所有软件包。
最简单的解决方案是添加 --ignore-platform-reqs
标志。
如果您正在运行 composer install 或 composer update 使用 --ignore-platform-reqs 标志
例子
composer install --ignore-platform-reqs
或者
composer update --ignore-platform-reqs
这应该可以解决问题!
那些dev-master
是自动添加的吗?避免将它们作为不必要的版本限制,对于“任何合适的版本”,请使用 "*"
,如果您不介意开发包,请使用 "@dev"
。我的猜测是 Entrust 是潜在的麻烦制造者。
此外,"minimum-stability": "stable"
施加了额外的约束,并且
"minimum-stability": "dev",
"prefer-stable": true
更无冲突,将其视为经验法则。
dev-master
约束。它并没有说明松散的版本约束是好的——它们可能会导致一团糟,这是开发人员的良心。答案对标签没有固执己见的事实并没有造成错误。顺便说一句,我感谢您的反对。否决相邻的答案是非常合乎道德的。
我解决了将 'laravel/framework'
依赖版本从 "^8.0"
设置为 "^7.0"
的相同问题。
之后运行 composer update --ignore-platform-reqs
就可以了
我在 Laravel v8.49.0(PHP v8.0.6)中面临同样的问题。通过安装包使用 Composer 我最近通过安装两个包解决了同样的问题:-
作曲家创建项目 laravel/laravel myapp
https://i.stack.imgur.com/the0g.png
作曲家更新
作曲家更新--ignore-platform-reqs
或者
作曲家安装--ignore-platform-reqs
检查启动服务器
php工匠服务
https://i.stack.imgur.com/GL76g.png
在 composer.json 内 require
数组的末尾添加 "barryvdh/laravel-cors": "^0.7.3"
保存 composer.json 并运行 composer update
你完成了!
我通过添加 "zizaco/entrust": "*"
而不是 "zizaco/entrust": "~1.2"
解决了同样的错误。
您必须位于正确的目录中,因此 cd 进入该目录,然后:composer update --ignore-platform-reqs
如果您之前按照 Vivek M 的建议安装了 composer。我的问题是错误的目录。 cd 到:xampp/htdocs/laravelProjects/laravelP1
我在 Laravel 5.8 中遇到了这个问题,我所做的是为每个库和所有正确安装的地方做 composer require
。
像这样:
而不是将其添加到 composer.json 文件或指定版本:
composer require msurguy/honeypot: dev-master
相反,我没有指定任何版本:
composer require msurguy/honeypot
希望对你有帮助,谢谢
"config": {
"platform": {
"ext-pcntl": "7.2",
"ext-posix": "7.2"
}
}
如果您使用的是 php ^8.0
打开可用 php 版本的列表
sudo update-alternatives --config php
切换到 PHP 7.2 以上的旧版本,选择其中一个,然后更新作曲家
composer update
根据您系统上安装的 PHP 版本安装以下内容:
sudo apt-get install php8.0-curl php8.0-gd php8.0-xsl php8.0-dom
最后再次尝试用composer创建laravel项目
composer create-project laravel/laravel myProject
原因:
发生错误是因为您的项目文件夹归根用户所有。
解决方案
将所有权更改为当前登录的用户,而不是 root 用户。如果您只有 root 作为唯一用户,请创建另一个具有 root 权限的用户。
$ sudo chown -R current_user /my/project/directory/
然后
$作曲家安装
只需在 php.ini 文件中激活 curl
;extension=php_curl.dll
至
extension=php_curl.dll
然后作曲家安装