如何解决“您的需求无法解决为一组可安装的包”错误?

当我运行 composer update时,我收到一些有线输出。

enter image description here

这是我的作曲家。

{
"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"
}

我该怎么补救?

512906 次浏览

这些 dev-master是自动添加的吗?避免它们作为不必要的版本限制,因为“任何合适的版本”都可以使用 "*"或者 "@dev",如果你不介意开发包的话。我猜 Entrust 是潜在的麻烦制造者。

此外,"minimum-stability": "stable"还施加了额外的约束,并且

"minimum-stability": "dev",
"prefer-stable": true

更没有冲突,把它当成经验法则吧。

您的软件依赖项具有不兼容的版本冲突。

同时,您需要安装任何 Laravel 4.2. x 版本,以及来自其主分支的“ zizaco/entrust”。而且那个主分支至少需要 Laravel 5.0(粗略地说)。

问题来自于对分支的依赖。很可能 zizaco/trust 包曾经在其主分支中使用过 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/trust 版本1.3.0,但是版本1.2也符合条件。用 "zizaco/entrust": "~1.2"

在 poser.json 中的 require数组末尾添加 "barryvdh/laravel-cors": "^0.7.3"

保存 comper.json 并运行 composer update

你完蛋了!

只需激活 php.ini 文件中的 curl

;extension=php_curl.dll

extension=php_curl.dll

然后是 作曲家安装

我也面临着同样的问题,我正在使用“ Lumen”微服务框架。 我最近通过安装两个软件包解决了同样的问题:-

  1. Sudo apt-get install Php7.0-mbstring,
  2. Sudo apt-get install Php7.0-xml或 sudo apt-get install Php-xml

安装完成后,您需要执行以下命令:- 作曲家更新

霍普,这会解决问题的,我在改进我的系统。

"config": {
"platform": {
"ext-pcntl": "7.2",
"ext-posix": "7.2"
}
}

原因:

发生错误是因为您的项目文件夹属于根用户。

解决方案

将所有权更改为当前签名的用户,而不是根用户。如果只有 root 用户,则创建另一个具有 root 权限的用户。

$sudo chown-R Current _ user/my/project/directory/

那么

$作曲家安装

运行以下命令:

作曲家 install ——忽略-平台-请求

或者

作曲家更新——忽略平台请求

我在 Laravel 5.8中遇到了这个问题,我所做的就是对每个库和所有正确安装的地方执行 composer require

像这样:

而不是将其添加到 poser.json 文件或指定一个版本:

composer require msurguy/honeypot: dev-master

相反,我没有指定任何版本:

composer require msurguy/honeypot

希望能帮上忙,谢谢

我解决了将 'laravel/framework'依赖版本从 "^8.0"设置为 "^7.0"的同样问题。

在那之后,运行 composer update --ignore-platform-reqs就简单地起作用了

作曲家 Json

通过添加 "zizaco/entrust": "*"而不是 "zizaco/entrust": "~1.2",我解决了同样的错误。

我使用 视窗10机器与 PHP8拉瓦雷尔8号一起工作,我得到了相同的错误,我使用了以下命令:-

composer update --ignore-platform-reqs

不管版本冲突如何,更新所有包。

如果您使用的是 Php ^ 8.0

可用 PHP 版本的开放列表

   sudo update-alternatives --config php

打开 PHP 7.2以上的旧版本,选择其中一个 然后更新作曲家

composer update

我在 Laravel v8.49.0(PHP v8.0.6)也面临着同样的问题。通过安装包使用 Composer
我最近通过安装两个软件包解决了同样的问题:-

作曲家创建-项目 Laravel/laravel myapp

your requirement could not be resolved

作曲家更新

作曲家更新——忽略平台请求

或者

作曲家 install ——忽略-平台-请求

检查开始服务器

工匠服务

enter image description here

最简单的解决方案是添加 --ignore-platform-reqs标志。

如果您正在运行 composer installcomposer update,使用它与 --ignore-platform-reqs标志

例子

composer install --ignore-platform-reqs

或者

composer update --ignore-platform-reqs

这个应该能行!

根据系统上安装的 PHP 版本安装以下软件:

sudo apt-get install php8.0-curl php8.0-gd php8.0-xsl php8.0-dom

最后再次尝试使用作曲家创建 laravel 项目

composer create-project laravel/laravel myProject

你必须在正确的目录,所以 cd 到它,然后: 如果您以前安装的作曲家 Vivek M 建议。我的问题是错误的目录。 Cd 到: xampp/htdocs/laravelProjects/laravelP1