提问者:小点点

如何解释编写者的错误日志?


我在网上做了很多研究,但没有找到作曲家错误日志的留档。在我发现的讨论中,没有人有与错误日志一致的解释。例如:

  • [支持]需要解释“结论:不要安装…”
  • 为什么作曲家说“结论:不要安装”时(似乎)没有障碍存在

我知道,作曲家是做什么的,我自己也能解决问题,但我经常要咨询包装专家。为这个组织。尽管非常(而且不必要)冗长,但composer日志只给了我一些提示。它并没有真正指出具体的问题。

是否有人知道完整的文档或如何解释日志背后的原因,也许可以以上面的文档为例?


共1个答案

匿名用户

可以在getcomposer上找到Composer的文档。组织/文档,特别是故障排除部分。通常,依赖性问题来自编写器的错误配置。json和理解编写器日志都需要在反复试验中积累经验或学习。记录数百个可能错误中的每一个可能很快就会过时。如果您认为某些特定错误不够清楚,您可以随时在Composer的GitHub页面上提出新建议。

正如链接的GitHub问题“结论:不要安装”消息中所建议的,它可能与最低稳定性中定义的要求有关。另一个相关问题可能与作曲家的bug有关,如GH-7215所报道。

下面是一个小指南,解释常见作曲家的错误:

>

如果您看到这些消息,这可能是依赖项问题的主要原因。这基本上意味着基于Composer的依赖计算,这两个版本都是必需的,但是只能安装一个主要版本(您不能同时拥有x. y. z和X. y. Z,除非您为不同的文件夹划分配置)。要查看为什么需要这些包,请使用作曲家为什么/依赖命令并相应地调整依赖项。

请参阅:如何解决“只能安装其中一个:”的冲突?

org/Package2的安装请求(锁定在vX. Y. Z)

此消息意味着有一个org/包的安装请求,但是,它被锁定在X. Y. Z。如果请求的版本与锁定的版本(如不同的主要版本)不兼容,则不能同时安装。这条消息经常伴随着已经提到的“只能安装一个”。因此,每当您看到锁定时,这意味着Composer从composer.lock文件中读取您安装的包版本。要排除故障,您可以使用作曲家为什么/取决于命令来查找为什么请求该包并调整兼容性,否则,您可以尝试删除composer.lock文件并从头开始(理想情况下从空文件夹)。

请参阅:laravel/lumen-Inster安装失败:guzzlehttp/guzzle6.3.0锁定

组织/包装1 vx。y、 z与org/package2[vX.y.z]冲突。

这是一个与上面类似的问题,其中两个包是冲突的,您需要手动解决依赖关系。阅读信息的整个上下文可能会给你更多的线索。检查依赖树也可能有帮助(作曲家show-t)。

与您的要求冲突或最低稳定性

此消息的意思是,您应该检查所需的版本和/或最低稳定性设置。

这可能是由于包被标记为非稳定,而您的需求是“仅稳定”的。请参阅:但这些与您的需求或最低稳定性冲突

或者因为与其他安装的包冲突。请参阅:如何识别是什么阻止Composer安装最新版本的软件包?。

对于任何其他错误,请查看官方作曲家的故障排除页面。

以下是有关如何解决编写器依赖性问题的更多建议:

  • -v/-vv/-vvv参数添加到命令中,以获得更详细的输出

要完全调试Composer的依赖项问题,您可以:

  • 分析或修改源代码(例如dependencysolver/Problem.php
  • 通过断点或生成完整或部分跟踪文件,在XDebug下运行Composer

解释常见错误的有用线程:

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

相关问题