composer не будет обновлять 8.7.10 до 8.8.2 - "Ничего не нужно устанавливать или обновлять"


Когда я пытаюсь использовать composer для обновления Drupal, он не справляется и выдает мне несколько заброшенных элементов.

Не уверен, куда идти дальше, но, может быть, кто-нибудь может дать указания о том, что может быть причиной проблем, и как решить оставленные пакеты?

Извините, если это расплывчато. Я не знаю, какими должны быть следующие шаги.

[user@ip-000-00-00-000 sitefolder]$ sudo -u nginx composer update drupal --with-dependencies
No composer.json in current directory, do you want to use the one at /var/lib/nginx/sitefolder? [Y,n]? Y
> DrupalProject\composer\ScriptHandler::checkComposerVersion
Package "drupal" listed for update is not installed. Ignoring.
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Package container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead.
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Package webflo/drupal-core-require-dev is abandoned, you should avoid using it. Use drupal/core-dev instead.
Package zendframework/zend-diactoros is abandoned, you should avoid using it. Use laminas/laminas-diactoros instead.
Package zendframework/zend-escaper is abandoned, you should avoid using it. Use laminas/laminas-escaper instead.
Package zendframework/zend-feed is abandoned, you should avoid using it. Use laminas/laminas-feed instead.
Package zendframework/zend-stdlib is abandoned, you should avoid using it. Use laminas/laminas-stdlib instead.
Writing lock file
Generating autoload files

Я также сделал "устаревший композитор -Dm", чтобы посмотреть, что я получу, если это поможет:

sudo -u nginx composer outdated -Dm
No composer.json in current directory, do you want to use the one at /var/lib/nginx/sitefolder? [Y,n]? Y
drupal/browserclass            1.0.0-alpha1 1.0.0-alpha2 Adds a browser class to the body tag.
drupal/core                    8.7.10       8.8.2        Drupal is an open source content management platform powering millions of websites...
webflo/drupal-core-require-dev 8.7.10       8.8.1        require-dev dependencies from drupal/core

Я попробовал композитора почему-не drupal/core: 8.8.1 и 8.8.2 и получил:

webflo/drupal-core-require-dev  8.7.10  requires          drupal/core (8.7.10)                                 
drupal/core                     8.8.1   requires          typo3/phar-stream-wrapper (^3.1.3)                   
drupal-composer/drupal-project  -       does not require  typo3/phar-stream-wrapper (but v2.1.3 is installed)  
drupal/core                     8.8.1   requires          pear/archive_tar (^1.4.9)                            
drupal-composer/drupal-project  -       does not require  pear/archive_tar (but 1.4.8 is installed)  

Я также попытался заменить элемент webflow/drupal-core-require-dev, и когда я сделал переустановку, используя "composer require--dev drupal/core-dev", я столкнулся с запутанным результатом:

 Problem 1
    - Conclusion: don't install drupal/core-dev 8.8.2
    - Conclusion: don't install drupal/core-dev 8.8.1
    - Conclusion: don't install drupal/core-dev 8.8.0
    - Conclusion: don't install drupal/core-dev 8.8.0-rc1
    - Conclusion: don't install drupal/core-dev 8.8.0-beta1
    - Installation request for webflo/drupal-core-require-dev (locked at 8.7.10, required as ^8.7.0) -> satisfiable by webflo/drupal-core-require-dev[8.7.10].
    - Conclusion: don't install drupal/core-dev 8.9.x-dev
    - Conclusion: don't install drupal/core-dev 8.8.x-dev
    - Can only install one of: drupal/core[8.8.0-alpha1, 8.7.10].
    - Can only install one of: drupal/core[8.8.0-alpha1, 8.7.10].
    - Can only install one of: drupal/core[8.8.0-alpha1, 8.7.10].
    - drupal/core-dev 8.8.0-alpha1 requires drupal/core 8.8.0-alpha1 -> satisfiable by drupal/core[8.8.0-alpha1].
    - Installation request for drupal/core-dev ^8.8 -> satisfiable by drupal/core-dev[8.8.0, 8.8.0-alpha1, 8.8.0-beta1, 8.8.0-rc1, 8.8.1, 8.8.2, 8.8.x-dev, 8.9.x-dev].
    - Installation request for drupal/core (locked at 8.7.10, required as ^8.7.0) -> satisfiable by drupal/core[8.7.10].


Installation failed, reverting ./composer.json to its original content.
 1
Author: turpentyne, 2020-02-04

5 answers

Как упоминали другие, drupal/core-recommended следует использовать в дальнейшем.

Попробуйте:

composer remove webflo/drupal-core-require-dev --no-update composer require drupal/core-recommended --no-update composer update webflo/drupal-core-require-dev drupal/core drupal/core-recommended --with-dependencies

Вы также можете попробовать добавить composer require drupal/core:8.8.1 специально перед запуском команды обновления.

 4
Author: sleepingmonk, 2020-02-05 01:24:07

Ответ Спящего монаха хорош, выше. Однако больше всего мне помогло то, что я следовал информации по ссылке, предоставленной стивекейрецу в одном из комментариев:

Https://www.drupal.org/docs/8/update/update-core-via-composer#s-special-considerations-for-upgrading-to-drupal-880-and-later

Для меня это была комбинация удаления "webflo/drupal-core-require-dev", а также файла "composer.lock".

 2
Author: turpentyne, 2020-02-06 15:48:28

У меня была та же проблема. Вам необходимо перейти с webflo/drupal-core-strict на drupal/core-рекомендуемый.

Решение и шаги здесь : https://www.drupal.org/docs/8/update/update-core-via-composer#migrate-webflo-drupal-core-strict-to-core-recommended

Самый простой способ выполнить эту миграцию и избежать конфликтов - удалить вашего композитора.полностью заблокируйте файл как часть обновления. Однако это будет означать, что другие зависимости (например, добавленные модули Drupal) также могут быть обновлены. Выполнение этих шагов гарантирует, что вы обновите именно то, что намереваетесь:

  1. обновление композитора # Для обновления любых зависимостей в качестве отдельного шага.
  2. git добавить composer.lock; git зафиксировать# Сохранить обновления как отдельную фиксацию.
  3. композитор удаляет webflo/drupal-core-строгий --без обновления
  4. композитор удаляет drupal/ядро --без обновления
  5. композитор требует 'композитор/установщики: ^1.7'--без обновления
  6. rm composer.блокировка
  7. поставщик rm-rf # Также помогает избежать конфликтов.
  8. композитору требуется drupal/core - рекомендуется:^8.8 --обновление с зависимостями
  9. git добавить composer.json composer.lock; git commit -m "Обновить Drupal до 8.8.0 и использовать drupal/core-рекомендуется вместо webflo/drupal-core-строгий"
 2
Author: khaliloo, 2020-02-06 17:18:18

По странной причине я не смог выполнить обновление с 8.8.1 до 8.8.2 с установленным webflo/drupal-core-require-dev. Чтобы быстро решить эту проблему, я просто:

// Remove webflo
composer remove --dev webflo/drupal-core-require-dev

// Add drupal/core-dev  (This step is not mandatory, only for dev purpose)
composer require --dev drupal/core-dev 

// Update Drupal core from 8.8.1 to 8.8.2
composer update drupal/core --with-dependencies

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

 0
Author: Karim Boudjema, 2020-02-10 03:09:55

Как и другие ответы, вы можете попробовать перейти на drupal/core-recommended. Я нашел этот плагин Composer очень простым в использовании:

Https://github.com/grasmash/composerize-drupal

Я успешно протестировал его на нескольких установках Drupal.

 0
Author: Sébastien Gicquel, 2020-02-10 09:00:13