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
私はcomposer why-not 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.
Sleepingmonkの答えは上記のとおりです。しかし、私を最も助けたのは、サブコメントの1つでstevekeiretsuによって提供されたリンクの情報に従うことでした。
私にとっては、「webflo/drupal-core-require-dev」と「composer.lock」ファイルの削除の組み合わせでした。
他の人が述べたように、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
Updateコマンドを実行する前に、composer require drupal/core:8.8.1
を追加することもできます。
私も同じ問題を抱えていました。 webflo/drupal-core-strictからdrupal/core-recommendedに移行する必要があります。
解決策と手順はここにあります: https://www.drupal.org/docs/8/update/update-core-via-composer#migrate-webflo-drupal-core-strict-to-core-recommended
この移行を実行して競合を回避する最も簡単な方法は、更新の一部としてcomposer.lockファイルを完全に削除することです。ただし、そうすることで、他の依存関係(たとえば、貢献したDrupalモジュール)も更新される可能性があります。次の手順に従うと、意図したとおりに更新できます。
- composer update#依存関係を別のステップとして更新します。
- git add composer.lock; git commit#更新を別のコミットとして保存します。
- composerはwebflo/drupal-core-strict --no-updateを削除します
- composerはdrupal/core --no-updateを削除します
- composerには 'composer/installers:^ 1.7'が必要です--no-update
- rm composer.lock
- rm -rf vendor#また、競合を回避するのに役立ちます。
- composerにはdrupal/core-recommendedが必要です:^ 8.8 --update-with-dependencies
- git add composer.json composer.lock; git commit -m "Drupalを8.8.0に更新し、webflo/drupal-core-strictの代わりにdrupal/core-recommendedを使用します"
奇妙な理由で、webflo/drupal-core-require-devをインストールした状態で8.8.1から8.8.2にアップグレードできませんでした。すばやく解決するには、次のようにします。
// 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
お役に立てれば。
他の回答として、drupal/core-recommended
。私はこれを見つけたComposerプラグインは非常に使いやすい:
https://github.com/grasmash/composerize-drupal
いくつかのDrupalインストールで正常にテストしました。