我在网上做了很多研究,但没有找到作曲家错误日志的文档。在我发现的讨论中,没有人得到与错误日志一致的解释。例如:
我知道,作曲家做了什么,可以自己解决问题,但我经常要咨询packagist.org。尽管非常(并且不必要)冗长,但作曲家日志只给了我一些提示。它没有真正指出具体问题。
有没有人知道完整的文档或如何解释日志背后的推理,可能以上面的例子为例?
答案 0 :(得分:2)
可以在getcomposer.org/doc,尤其是Troubleshooting部分找到Composer的文档。通常,依赖性问题来自于composer.json
的错误配置,并且了解Composer日志会带来经验或学习反复试验。记录数百个可能的错误可能会很快过时。如果您认为某些特定错误不够清晰,则可以始终在new suggestion处提出Composer's GitHub page。
如链接GitHub issue中所述,"结论:不要安装"消息它可能与minimum-stability
中定义的要求相关。另一个linked question可能与GH-7215报告的作曲家错误有关。
这是一个小型指南,解释了常见的Composer错误:
只能安装一个:org / package [x.y.z,X.Y.Z]。
如果您看到此消息,则可能是依赖性问题的主要原因。它基本上意味着基于Composer的依赖性计算,这两个版本都是必需的,但只能安装一个主要版本(除非您为不同的文件夹拆分配置,否则不能同时拥有x.y.z和X.Y.Z)。要查看why
这些软件包是必需的,请使用composer why
/ depends
命令并相应地调整依赖项。
请参阅:How to resolve a "Can only install one of:" conflict?& How to solve two packages requirements conflicts when running composer install?
org / package2的安装请求(已锁定在 vX.Y.Z)
此消息表示存在org / package的安装请求,但是它已锁定在X.Y.Z.如果请求的版本与锁定版本不兼容(如不同的主要版本),则无法同时安装。这个消息经常伴随着已经提到的#34;只能安装一个"一。因此,每当您看到"锁定在"时,这意味着Composer会从composer.lock
文件中读取您安装的软件包版本。要进行故障排除,您可以使用composer why
/ depends
命令查找请求包的原因并调整兼容性,否则,您可能会尝试删除composer.lock
文件并从头开始(最好从空文件夹)。
请参阅:Installation failed for laravel/lumen-installer: guzzlehttp/guzzle locked at 6.3.0
与org / package2 [vX.Y.Z]org / package1 vx.y.z 冲突。
这是一个与上面类似的问题,其中两个包存在冲突,您需要手动解决依赖关系。阅读消息的整个上下文可能会给你一些更多的线索。检查依赖关系树也可能有所帮助(composer show -t
)。
与您的要求冲突或
minimum-stability
此消息表示读取,因此您应检查所需的版本和minimum-stability
设置。
请参阅:But these conflict with your requirements or minimum-stability
如有任何其他错误,请查看官方 Composer's Troubleshooting page 。
以下是有关如何解决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
)。解释常见错误的有用线程: