【问题标题】:Composer package has requirement conflict when installing, but no requirements are requiredComposer包安装时有需求冲突,但没有需求
【发布时间】:2021-10-11 14:27:17
【问题描述】:

我创建了一个包并将它放在一个从私有 Bitbucket 存储库中获取的私有 Packagist 上。在我尝试安装软件包之前,这一切都很好。我的 composer.json 看起来像这样:

{
    "name": "XXXX/fields",
    "description": "Field processor for easy saving and updating",
    "type": "library",
    "autoload": {
        "psr-4": {
            "XXXX\\Fields\\": "src/"
        }
    },
    "authors": [
        {
            "name": "This Nerd",
            "email": "This.Nerd@XXXX.nl"
        }
    ],
    "require": {},
    "extra": {
        "laravel": {
            "providers": [
                "XXXX\\Field\\FieldServiceProvider"
            ],
            "aliases": {
                "Field": "XXXX\\Field\\Facades\\Initiators\\Field"
            }
        }
    }
}

安装composer时发现与其他包冲突:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - psr/cache 3.0.0 requires php >=8.0.0 -> your php version (7.4.19) does not satisfy that requirement.
    - zircote/swagger-php 3.2.3 requires doctrine/annotations ^1.7 -> satisfiable by doctrine/annotations[1.13.1].
    - darkaonline/l5-swagger 8.0.7 requires zircote/swagger-php 3.* -> satisfiable by zircote/swagger-php[3.2.3].
    - doctrine/annotations 1.13.1 requires psr/cache ^1 || ^2 || ^3 -> satisfiable by psr/cache[3.0.0].
    - darkaonline/l5-swagger is locked to version 8.0.7 and an update of this package was not requested.


Installation failed, reverting ./composer.json and ./composer.lock to their original content.

如您所见,我还不需要任何包,也没有在我的 composer.json 中定义任何要求。 packagist 中的当前版本标签是 1.0.1。获取作曲家时尝试“使用版本 ^1.0”。所以这一切看起来都很好,但事实并非如此。

欢迎提出任何建议。

【问题讨论】:

  • 您是否在 BitBucket 存储库中发布了版本?此外,您尝试要求的包可以有自己的一组依赖项。顺便说一句,根据错误消息,psr/cache 需要 PHP 8 但你有 PHP 7.4
  • 刚刚发现它确实是php版本。我在本地命令行(php 7.4)上运行composer require,而我需要在sail(php 8.0)中这样做。用上面的回答我会标记它
  • 在我看来,这只是需要考虑的版本差异。所以,我会顺其自然。如果您喜欢或可能删除该问题,您可以自己回答。
  • 你运行的命令是什么?这甚至与那个包有关,还是与您的应用程序的其余部分有关?

标签: php composer-php packagist


【解决方案1】:

正如 nice_dev 所说,composer 错误完全是 php 版本错误。这是因为我在运行 7.4 的命令行上运行它。但是,我正在运行风帆,风帆运行 8.0。所以我需要在风帆中运行它。我在本地运行它的原因是因为我在sail 服务器上没有ssh 密钥。最后我通过在 composer config 中添加一个 oauth 密钥解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-29
    • 2021-04-20
    • 2022-08-05
    • 2020-06-02
    • 1970-01-01
    • 2013-04-18
    • 2015-01-19
    • 2022-12-11
    相关资源
    最近更新 更多