如何解释作曲家的错误日志?
我在网上做了很多研究,但没有找到作曲家错误日志的文档。在我发现的讨论中,没有人有与错误日志一致的解释。例如:
我知道,作曲家做什么,可以自己解决问题,但我经常需要咨询 packagist.org。尽管相当(并且不必要地)冗长,但作曲家日志只给了我一些提示。它并没有真正指出具体问题。
有没有人知道一个完整的文档或如何解释日志背后的原因,也许以上面的日志为例?
我在网上做了很多研究,但没有找到作曲家错误日志的文档。在我发现的讨论中,没有人有与错误日志一致的解释。例如:
我知道,作曲家做什么,可以自己解决问题,但我经常需要咨询 packagist.org。尽管相当(并且不必要地)冗长,但作曲家日志只给了我一些提示。它并没有真正指出具体问题。
有没有人知道一个完整的文档或如何解释日志背后的原因,也许以上面的日志为例?
可以在 getcomposer.org/doc 中找到 Composer 的文档,尤其是“故障排除”部分。通常,依赖关系问题来自您的错误配置,并且理解Composer日志会带来经验或对反复试验的学习。记录数百个可能的错误中的每一个都可能很快过时。如果您认为某些特定错误不够清晰,可以随时在 Composer 的 GitHub 页面上提出新的建议。composer.json
正如链接的GitHub问题中所建议的那样,“结论:不要安装”消息可能与最小稳定性
中定义的要求有关。另一个链接问题可能与GH-7215中报告的Composer错误有关。
这是一个小指南,解释了常见的Composer的错误:
只能安装以下之一:org/package[x.y.z, X.Y.Z]。
如果看到此消息,则可能是依赖项问题的主要原因。这基本上意味着,根据 Composer 的依赖关系计算,这两个版本都是必需的,但只能安装一个主要版本(你不能同时拥有 x.y.z 和 X.Y.Z,除非你拆分了不同文件夹的配置)。若要查看这些包是必需的,请使用 / 命令并相应地调整依赖项。why
composer why
depends
组织/包 2 的安装请求(锁定在 vX.Y.Z)
此消息表示存在组织/包的安装请求,但是,它已锁定在 X.Y.Z。如果请求的版本与锁定的版本不兼容(如其他主要版本),则无法同时安装两者。此消息通常与已经提到的“只能安装一个”一起出现。因此,每当您看到“锁定”时,这意味着Composer会从文件中读取已安装的软件包版本。要进行故障排除,您可以使用/ 命令来查找请求软件包的原因并调整兼容性,否则,您可以尝试删除文件并从头开始(理想情况下从空文件夹中)。composer.lock
composer why
depends
composer.lock
请参见:laravel/lumen-installer 的安装失败:guzzlehttp/guzzle 锁定在 6.3.0
org/package1 vx.y.z 与 org/package2[vX.Y.Z] 冲突。
这是一个与上面类似的问题,其中两个包冲突,您需要手动解决依赖关系。阅读消息的整个上下文可能会给你更多的线索。检查依赖关系树也可能有帮助 ()。composer show -t
与您的要求或
最低稳定性
相冲突
此消息的意思是阅读,因此您应该检查所需的版本和/或您的设置。minimum-stability
这可能是由于软件包被标记为不稳定,并且您的要求是“仅稳定”引起的。请参阅:但这些与您的要求或最低稳定性相冲突
或者因为与其他已安装的软件包冲突。请参见:如何识别阻止 Composer 安装最新版本的软件包的原因?。
有关任何其他错误,请查看官方 Composer 的疑难解答页面。
以下是有关如何解决一般 Composer 依赖项问题的更多建议:
-v
-vv
-vvv
composer diagnose
composer.lock
composer.json
composer.json
composer show -t
composer show -a org/package x.y.z
要完全调试 Composer 的依赖项问题,您可以:
,DependencyResolver/Problem.php
)。解释常见错误的有用线程:
somevendor/somepackage[v1.0.0, ..., v1.9.1] 需要 composer-plugin-api ~[X.X]
这意味着这需要安装 Composer 的特定版本范围。somevendor/somepacakge
运行并将其与错误消息中的版本约束进行比较(如上面的示例所示,但可能是 类似 、 或 等)。composer -v
~X.X
^1.0
^2.2
如果您的版本与约束不匹配,请查看您是否可以:
somevendor/somepackage