所请求的软件包已存在,但由于您的约束而被拒绝

时间:2018-07-09 08:18:08

标签: php composer-php

我想将分支1.x中的this标签添加到我的项目中。

我指定了:"monolog/monolog": "dev-1.x#1.23.0"

然后运行composer update monolog/monolog

作曲家说:

Problem 1
    - The requested package monolog/monolog dev-1.x#1.23.0 exists as monolog/monolog[1.0.0, 1.0.0-RC1, 1.0.1, 1.0.2, 1.1.0, 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.13.1, 1.14.0, 1.15.0, 1.16.0, 1.17.0, 1.17.1, 1.17.2, 1.18.0, 1.18.1, 1.18.2, 1.19.0, 1.2.0, 1.2.1, 1.20.0, 1.21.0, 1.22.0, 1.22.1, 1.23.0, 1.3.0, 1.3.1, 1.4.0, 1.4.1, 1.5.0, 1.6.0, 1.7.0, 1.8.0, 1.9.0, 1.9.1, 1.x-dev, dev-master, 2.x-dev] but these are rejected by your constraint.

我想从特定分支中提取特定标签。我该怎么办? this answer建议我应该没事。

更新:

在遵循Loek的建议并删除了实际标签之前的所有内容后,我得到了以下信息: The requested package monolog/monolog (installed at 1.21.0, required as 1.23.0) is satisfiable by monolog/monolog[1.21.0] but these conflict with your requirements or minimum-stability.

我已经设置了"minimum-stability": "dev"

4 个答案:

答案 0 :(得分:4)

您可以使用the composer why-not command查看哪些软件包与您指定的版本冲突。

因此,无需对composer.json进行任何更改,请运行:

composer why-not monolog/monolog 1.23.0

这应该告诉您发生冲突的地方。

您还可以采取一些措施来减少发生此类冲突的可能性:

  • 放宽版本限制。盯住特定版本的软件包会使Composer更少的自由来查找有效的软件包集。
  • 编辑您的约束,然后运行composer update,不带任何参数,以使Composer找到满足这些约束的最佳软件包集合,而不是强制其一次更改一个软件包。

答案 1 :(得分:1)

我遇到了同样的问题,问题出在Packagist上,我在Github上更新了发行版,而Packagist上尚未更新。因此,在对其进行更新之后,问题得以解决。

答案 2 :(得分:0)

您可以只指定要下载的标签。如果软件包维护者正确标记了他们的版本,那么它在哪个分支或哪个稳定性上都没有关系。如果指定1.23.0,它将始终拉入1.23.0


编辑

可能有一些包装相撞。查看@IMSoP的答案,比我的解决方法更简单。

我的任务是:更新所有软件包,Composer应该显示哪些软件包在冲突。

答案 3 :(得分:0)

一段时间后,我在phpmyadmin中遇到了类似的问题。我意识到4.5.0版本不存在,已删除或过去输入错误

似乎对我有帮助的是手动编辑-从composer.json中删除记录并发出composer install命令。

下一步是安装其中一个已经提到过的具体版本,有问题-被4.7.0拒绝-php7.0 composer install phpmyadmin/phpmyadmin:4.7.0

我还添加了两个设置-但是这些设置似乎并不单独起作用

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

我的原始错误消息是

Problem 1 - The requested package phpmyadmin/phpmyadmin 4.5.0.* exists as phpmyadmin/phpmyadmin[4.0.0, 4.0.1, 4.0.10, 4.0.10.1, 4.0.10.2, 4.0.10.3, 4.0.10.4, 4.0.10.5, 4.0.10.6, 4.0.10.7, 4.0.10.8, 4.0.10.9, 4.0.2, 4.0.3, 4.0.4, 4.0.4.1, 4.0.4.2, 4.0.5, 4.0.6, 4.0.7, 4.0.8, 4.0.9, 4.7.0, 4.7.1, 4.7.2, 4.7.3, 4.7.4, 4.7.5, 4.7.6, 4.7.7, 4.7.8, 4.7.9, 4.7.x-dev, 4.8.0, 4.8.0.1, 4.8.1, 4.8.2, 4.8.3, 4.8.4, 4.8.5, 4.8.x-dev, 4.9.0, 4.9.0.1, 4.9.1, 4.9.x-dev, 5.0.x-dev, dev-master, 5.1.x-dev] but these are rejected by your constraint.