【问题标题】:composer-plugin-api error when installing dependencies安装依赖项
【发布时间】:2021-10-15 08:15:41
【问题描述】:

我正在尝试为我正在尝试处理的现有 Symfony 项目安装依赖项。我查看了这个https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file,它说我应该运行更新命令:php composer.phar update。我这样做了,但我收到以下错误:

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

  Problem 1
    - phpro/grumphp[v0.12.0, ..., v0.12.1] require composer-plugin-api ~1.0 -> found composer-plugin-api[2.1.0] but it does not match the constraint.
    - Root composer.json requires phpro/grumphp ^0.12 -> satisfiable by phpro/grumphp[v0.12.0, v0.12.1].

我不明白我应该做什么。请帮忙。谢谢。

如果我的解释不清楚,我也很抱歉,我没有那么多经验。

【问题讨论】:

  • 检查你的composer.json,看看你是否有composer-plugin-api!如果没有,请使用composer require composer-plugin-api 安装它,然后使用composer update 重试。
  • @DhiaDjobbi 我尝试安装 composer-plugin-api。起初它说 composer.json 已更新,然后它说“正在加载带有包信息的作曲家存储库。更新依赖项(包括 require-dev)”然后它说“安装失败,正在将 ./composer.json 恢复为其原始内容。”
  • @DhiaDjobbi 你不能安装 composer-plugin-api 本身,这是由 Composer 提供的

标签: symfony installation dependencies composer-php


【解决方案1】:

似乎它需要作曲家 1。尝试删除供应商文件夹并使用composer self-update --1 降级作曲家。比再次运行composer installcomposer update

【讨论】:

    【解决方案2】:

    require composer-plugin-api ~1.0

    错误消息中的那部分告诉您,您使用的任何包都需要 Composer v1 提供的 API。在某些情况下,这个问题只有一个解决方案:将 Composer 降级到 v1 以使用您当前正在使用的包。但这不是一个长期的解决方案,就像Packagist has deprecated its support for v1。另外,Composer v2 带来了huge performance improvements,所以更新带来了真正的好处:)

    在您的具体情况下,phpro/grumphp 需要旧 API。您使用的是相当旧的版本,因为版本约束 ^0.12 仅匹配该软件包的两个版本,即 0.12.0(2017 年 9 月发布)和 0.12.1(2017 年 11 月发布)。自 0.18.1(2020 年 5 月发布)以来,此软件包同时支持 Composer v1 和 v2,因此将此软件包更新到 0.18.1 或更高版本有助于解决您的问题,而无需降级到 Composer v1。

    【讨论】:

    • 感谢您的帮助。我已经把作曲家降级了。当前版本是1.4.1 但还是有问题
    • 如果您有任何问题,请打开一个新问题
    猜你喜欢
    • 2016-08-21
    • 2015-01-24
    • 2019-01-24
    • 2010-10-26
    • 2016-03-14
    • 2016-07-29
    • 2015-04-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多