Composer php 如何解决“问题”;只能安装以下其中一个:;冲突?
我已经通过Composer安装了一个包,它也安装了Guzzlehttp,因为这个包。 之后,我尝试通过Composer安装另一个包,这也需要Guzzlehttp,Composer尝试再次安装它 但我有一个错误: 问题1Composer php 如何解决“问题”;只能安装以下其中一个:;冲突?,composer-php,Composer Php,我已经通过Composer安装了一个包,它也安装了Guzzlehttp,因为这个包。 之后,我尝试通过Composer安装另一个包,这也需要Guzzlehttp,Composer尝试再次安装它 但我有一个错误: 问题1 只能安装一个:guzzlehttp/guzzle[6.2.0,6.0.2] 只能安装一个:guzzlehttp/guzzle[6.0.2,6.2.0] 只能安装一个:guzzlehttp/guzzle[6.0.2,6.2.0] 我知道问题出在哪里,但我不知道如何解决它。
- 只能安装一个:guzzlehttp/guzzle[6.2.0,6.0.2]
- 只能安装一个:guzzlehttp/guzzle[6.0.2,6.2.0]
- 只能安装一个:guzzlehttp/guzzle[6.0.2,6.2.0]
我知道问题出在哪里,但我不知道如何解决它。我遇到了类似的问题,我不得不运行
composer更新
在安装新软件包之前。这将取决于其他安装的软件包是否也更新了它们的依赖关系。当两个不同的软件包指向相同的依赖关系,但不同的主要互斥版本,其中只能安装一个时,将显示“只能安装一个[x,y]”消息
故障排除 例如,由于
composer.lock
文件中存在的信息可能与您尝试安装的内容冲突,某个版本可能会被“锁定”。在这种情况下,当混淆错误出现“locked at x.y.z”消息时,您可以使用以下命令了解已安装软件包的现有依赖关系:
composer show -t
注意:-t
显示为嵌套的树状视图,将其拖放以查看平面列表
要查看问题包在项目中的引用位置,请运行:
composer why org/package -t
注意:-t
显示为嵌套的树状视图,将其拖放以查看平面列表
要查看您尝试安装的软件包的详细信息,您可以运行:
composer show -a org/package # Package to inspect.
注意:要检查特定版本,请添加x.y.z
,例如:composer show-a guzzle http/guzzle 6.2.0
要进一步排除故障,根据您的情况,您可以尝试:
- 通过以下方式更新具有依赖项的现有包:
composer update --with-dependencies
- 从
中升级或删除冲突的依赖项(保持简单)composer.json
- 当混淆消息显示“锁定在x.y.z”时,使用
查看文件包的引用位置(或通过查找composer why org/package
手动检查x.y.z
的内容)。如果没有帮助,考虑删除<代码>作曲家。锁定< /代码>并重试;<李>composer.lock
- 当要求使用时,选择
n
- 在空文件夹中重新尝试简单的
,简化配置composer.json
- 运行
检查是否存在任何常见错误composer diagnose
- 使用
/-v
/-vv
增加命令的详细程度-vvv
- 另见:
编写器需要drupal/slack:^1.2.0
而不是
composer require drupal/slack:1.2.0
当后者导致这一错误时 这是一种依赖冲突。请发布您的
require
部分,以便其他人可以查看并建议一些更好的匹配版本约束。@JensA.Koch我认为这是一个错误的建议,因为虽然这可能会解决海报的问题,但到达此页面的其他搜索者自己不会有解决此问题的方法,除了在互联网上发布自己的require
。换句话说,这不是一个通用的解决方案。请注意,这会更新composer.json文件中的所有依赖项,如果依赖项没有正确固定,则可能会导致破坏性的更改。