Устаревший Composer показывает, что у drupal / core более новая версия, но в обновлении composer написано «обновлять нечего»

#drupal-8

#drupal-8

Вопрос:

Это похоже на вопрос без ответа годичной давности. Предположительно, у меня есть обновление для drupal / core:

 $ composer outdated "drupal/*"
drupal/core                     8.6.10       8.6.12       Drupal is an open source content ...
  

Но когда я запускаю обновление…

 $ composer update drupal/core --with-dependencies
Dependency "asm89/stack-cors" is also a root requirement, but is not explicitly whitelisted. Ignoring.
Dependency "composer/semver" is also a root requirement, but is not explicitly whitelisted. Ignoring.
[ ... ]
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Generating autoload files
> DrupalCoreComposerComposer::preAutoloadDump
> DrupalCoreComposerComposer::ensureHtaccess
  

Я пытаюсь следовать инструкциям по обновлению drupal 8 через composer, найденным здесь:https://www.drupal.org/docs/8/update/update-core-via-composer

Ответ №1:

Сегодня у меня была такая же проблема с обновлением Drupal, и следующий процесс помог мне решить проблему.

  • Запустите команду composer update, используя конкретную версию, до которой вы пытаетесь обновиться. В данном случае это было бы composer require drupal/core:8.6.12 --update-with-dependencies , если есть проблема, блокирующая обновление, это должно показать вам список проблем. в моем случае я попытался обновиться до версии 8.6.11, и он выдал следующее.

Проблема 1

. Запрос на установку для drupal / core 8.6.11 -> выполняется drupal / core[8.6.11].

. Можно установить только один из: twig / twig[1.x-dev, версия v1.35.3].

. Можно установить только один из: twig / twig[v1.35.3, 1.x-dev].

. Можно установить только один из: twig / twig[1.x-dev, версия v1.35.3].

. для drupal / core 8.6.11 требуется twig / twig ^ 1.38.2 -> выполняется с помощью twig / twig[1.x-dev, версия v1.38.2].

. Вывод: не устанавливайте twig / twig v1.38.2

. Запрос на установку для twig / twig (заблокирован в версии v1.35.3, требуется как ^ 1.35.0) -> выполняется twig / twig [v1.35.3].

  • Если в списке проблем нет, попробуйте очистить кэш composer composer clearcache , а затем повторите попытку команды update.
  • вы также можете попробовать запустить команду почему бы и нет composer, чтобы узнать, выявляет ли это какие-либо проблемы composer why-not drupal/core:8.6.12

В моем случае проблема заключалась в том, что компонент twig, необходимый для 8.6.12, был версии v1.38.2, но в файле composer был ограничен более низкой версией 1.35. Я использовал следующую команду для обновления версии twig, и это позволило мне обновиться до Drupal 8.6.12, используя мой обычный процесс обновления.

 composer require twig/twig:1.35.2
  

Надеюсь, это поможет.

Комментарии:

1. Спасибо, Беван! Я был немного идиотом, когда не прочитал остальную часть статьи «обновление». Я запустил «composer запрещает» и обнаружил зависимость twig.