首页 > 解决方案 > composer install -n --ignore-platform-reqs 不忽略 PHP 扩展

问题描述

我们有运行的循环构建,composer install -n --ignore-platform-reqs --no-dev但这不再忽略平台要求。

这是我在圈子日志中看到的。--ignore-platform-reqs显然不起作用。请问有什么想法吗?

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

  Problem 1
    - Installation request for drupal/core 8.6.13 -> satisfiable by drupal/core[8.6.13].
    - drupal/core 8.6.13 requires ext-pdo * -> the requested PHP extension pdo is missing from your system.
  Problem 2
    - typo3/phar-stream-wrapper v2.1.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - typo3/phar-stream-wrapper v2.1.0 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - Installation request for typo3/phar-stream-wrapper v2.1.0 -> satisfiable by typo3/phar-stream-wrapper[v2.1.0].

标签: drupalcomposer-phpcircleci

解决方案


与其使用--ignore-platform-reqsprovide破解,不如使用platform设置来模拟您的环境 - 它使您可以更好地控制平台要求,并且比provide(您的包并没有真正提供ext-fileinfo)更直观:

"config": {
    "platform": {
        "php": "7.2.14",
        "ext-fileinfo": "1.0.5",
        "ext-pdo": "7.2.14",
        "ext-session": "7.2.14",
        "ext-iconv": "7.2.14",
        "ext-zip": "1.15.4"
    }
},

您可以通过在生产环境中调用此命令找到扩展的实际版本(尽管您可能会为扩展版本添加任何内容 - 除了*作为 PHP 扩展的约束之外,使用任何内容都非常罕见):

composer show -p

推荐阅读