为了账号安全,请及时绑定邮箱和手机立即绑定

如何解决“只能安装一个:”的冲突?

如何解决“只能安装一个:”的冲突?

PHP
绝地无双 2019-08-14 15:39:01
如何解决“只能安装一个:”的冲突?我已经通过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]。我看到了什么问题,但我不知道如何解决它。
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

当两个不同的包指向相同的依赖关系时,会出现“ 只能安装一个[x,y] ”消息,但不同的主要互斥版本只能安装一个。


故障排除

例如,由于文件中存在的信息可能与您尝试安装的信息冲突,因此可以“ 锁定 ” 一个版本composer.lock。在这种情况下,当混淆错误带有“ 锁定在xyz ”消息时,您可以使用以下命令来了解已安装软件包的现有依赖关系:

composer show -t

注意:-t显示为嵌套树视图,将其删除以查看平面列表。

要查看项目中引用有问题的包的位置,请运行:

composer why org/package -t

注意:-t显示为嵌套树视图,将其删除以查看平面列表。

要查看您尝试安装的软件包的详细信息,您可以运行:

composer show -a org/package # Package to inspect.

注意:要检查特定版本,请添加x.y.z,例如:composer show -a guzzlehttp/guzzle 6.2.0


要进一步解决问题,根据您的具体情况,您可以尝试:

  • 通过以下方式更新具有依赖项的现有包:

    composer update --with-dependencies
  • 升级或删除您的冲突依赖项composer.json(保持简单)。

  • 当混淆消息显示“ 锁定在xyz ”时,用于composer why org/package查看引用包的位置(或composer.lock通过查找手动检查内容x.y.z)。如果没有帮助,请考虑删除composer.lock并重新尝试;

  • 当要求composer.json从不同的文件夹中使用时,请选择n

  • composer.json在空文件夹上重新尝试简单的简化配置。

  • 运行composer diagnose以检查是否存在任何常见错误。

  • 使用-v-vv-vvv增加你的命令的详细程度。


查看完整回答
反对 回复 2019-08-14
?
慕少森

TA贡献2019条经验 获得超9个赞

我有一个类似的问题,我只需要运行

composer update

在安装新包之前。这将取决于其他已安装的软件包是否已更新其依赖项。


查看完整回答
反对 回复 2019-08-14
  • 2 回答
  • 0 关注
  • 596 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信