首页 > 解决方案 > 需要一个特定的包提交 - composer 似乎忽略了 composer.json 的要求

问题描述

我有以下 composer.json / 要求:

    "require": {
        "php": ">=7.0",
        "ext-mbstring": "*",
        "ext-openssl": "*",
        "october/rain": "1.0.443",
        "october/system": "1.0.443",
        "october/backend": "1.0.443",
        "october/cms": "1.0.443",
        "laravel/framework": "5.5.*",
        "wikimedia/composer-merge-plugin": "dev-master#06deb2de8fe46826bbd3880003d2aed1716658b3"
    },

完整的 composer.json 可以在https://pastebin.com/SXTeWHgC找到

我在跑:

无论如何,当我这样做时,composer update我会得到以下信息

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for wikimedia/composer-merge-plugin dev-master#06deb2de8fe46826bbd3880003d2aed1716658b3 -> satisfiable by wikimedia/composer-merge-plugin[dev-master].
    - wikimedia/composer-merge-plugin dev-master requires php >=7.2.0 -> your PHP version (7.1.33) does not satisfy that requirement.

这对我来说没有任何意义。wikimedia/composer-merge-plugin dev-master#06deb2de8fe46826bbd3880003d2aed1716658b3不需要 >= 7.2.0 - 它需要 >= 5.3.2。那么为什么我会收到这个错误,我能做些什么呢?

标签: phpcomposer-phpoctobercmsphp-7.1

解决方案


来自作曲家文档:

注意:此功能有严重的技术限制,因为 composer.json 元数据仍会从您在哈希之前指定的分支名称中读取。因此,您应该只在开发期间将其用作临时解决方案来修复暂时性问题,直到您可以切换到标记版本。Composer 团队不积极支持此功能,也不会接受与其相关的错误报告。

来源:https ://getcomposer.org/doc/04-schema.md#package-links

这与您所看到的行为完全一致,该库的composer.jsondev-master从分支的 HEAD 提交而不是显式提交引用是红色的。


推荐阅读