#drupal #composer-php #circleci
#drupal #композитор-php #circleci
Вопрос:
у нас выполняется сборка circle composer install -n --ignore-platform-reqs --no-dev
, но это больше не игнорирует требования платформы.
Это то, что я вижу в журнале circle. --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].
Ответ №1:
Вместо использования --ignore-platform-reqs
или provide
взлома лучше имитировать вашу среду с помощью 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
Комментарии:
1. Я попытался добавить это в
platform
, но я получил эту ошибку [UnexpectedValueException] Недопустимая строка версии «*»2. Спасибо @rob .
composer show -p
помогло. удалось получить правильную версию для этого. У меня есть еще одно предложение, которое мне нужно дляcomposer.json
файла. У меня есть «минимальная стабильность»: «dev», and
«prefer-stable»: true» в моем файле composer.json, но всякий раз, когда я пытаюсь установить модуль для drupal с помощью этой команды,composer require 'drupal/file_mdm:^1.1'
загрузка версии разработчика, а не стабильной версии вызывает проблемы с моей сборкой. В версии dev есть.git
папка, которая создает проблемы с моим репозиторием. как мне заставить composer загрузить стабильную версию через dev?3. Я не знаком с drupal и его репозиториями, но вы можете попробовать
--prefer-dist
переключиться. Загрузка пакета из исходного кода напрямую не зависит от его стабильности — вы можете использовать стабильную версию и все еще иметь.git
каталог внутри.4. Спасибо за ответ. Я пытался использовать
--prefer-dist
, но это не решило проблему. проведем дополнительные исследования. Еще раз спасибо.
Ответ №2:
Я собираюсь ответить на свой собственный вопрос на случай, если кто-то споткнется здесь. Добавление предоставления со списком расширений в мой composer.json
файл решило проблему для меня. Это --ignore-platform-reqs
не возымело никакого эффекта.
"provide": {
"ext-fileinfo": "*",
"ext-pdo": "*",
"ext-session": "*",
"ext-iconv": "*",
"ext-zip": "*"
}
Комментарии:
1. я бы не рекомендовал этого, таким образом, вы не увидите ошибок в живой среде, в которой их нет. лучше добавьте его в глобальную конфигурацию в вашем домашнем каталоге, как указано в первом решении
2. Спасибо за предложения. Я удалил его из
provide
и добавил в своиplatform
настройки.