web-dev-qa-db-fra.com

Pourquoi la "mise à jour du compositeur drupal / drupal" ne fonctionne-t-elle pas?

J'ai installé un site Drupal 8.2.0 avec composer create-project drupal/drupal testsite.

Maintenant, je voudrais le mettre à niveau vers Drupal 8.2.1. Cependant, exécuter composer update drupal/drupal ne fonctionne pas. Il imprime l'erreur suivante:

Le package "drupal/drupal" répertorié pour la mise à jour n'est pas installé. Ignorer.

Comment puis-je faire cela? Le support est clairement documenté dans example.gitignore.

# Ignore core when managing all of a project's dependencies with Composer
# including Drupal core.
# core

Il doit donc y avoir un moyen de le faire avec le compositeur, mais comment?

10
Christoph Burschka

Je pense que je l'ai résolu. J'ai pensé que j'aurais besoin d'un autre fichier root composer.json qui récupère le package drupal au lieu de le remplacer, mais je ne savais pas comment le faire.

Heureusement, quelqu'un a déjà fait cela et reconditionné Drupal de manière conviviale pour le compositeur: https://github.com/drupal-composer/drupal-project (Non version stable encore, apparemment.)

En utilisant composer create-project drupal-composer/drupal-project:8.x-dev --stability dev drupal-dir J'ai pu obtenir une installation qui peut être mise à jour avec composer.

4
Christoph Burschka

Edit: ce n'est probablement pas utile b/c je viens de relire votre déclaration et vous n'aviez pas le même cas que le mien d'où je venais d'une ancienne Drupal 8 installation mais je vais laissez cela au cas où quelqu'un d'autre aurait ce problème et essayez de voir si je peux trouver le problème spécifique que vous rencontrez. Désolé.

J'ai eu ce problème lors d'une récente mise à jour et c'était mon problème, mais YMMV, donc si cela ne fonctionne pas, faites le moi savoir.

Cela peut être dû au fait que vous composer est défini sur l'ancienne liste de référentiel sur composer.org. Récemment, Drupal a installé son propre composer endpoints, un pour Drupal 7 et un autre pour Drupal 8. Vous pouvez en savoir plus sur ce changement ici: https : //www.drupal.org/docs/develop/using-composer/using-composer-to-install-drupal-packages-through-drupalorg

Il s'agit de la commande qui doit être exécutée pour échanger le référentiel sur Drupal.org.

$ composer config repositories.0 
$ composer https://packages.drupal.org/8
5
burnsjeremy

La commande composer create-project clone le package demandé, qui dans ce cas est https://git.drupal.org/project/drupal.git . À la fin du processus de création de projet, vous devez être invité à supprimer l'historique VCS existant. Si vous avez répondu n, vous aurez un moyen de mettre à jour à partir du référentiel amont drupal. Naviguez dans testsite et utilisez git pour récupérer et vérifier la version de Drupal vous voulez. Ensuite, exécutez composer install pour obtenir les dépendances identifiées dans composer.json et composer.lock de la version mise à jour de Drupal.

3
David Lanier

Sur la ligne de commande, nous avons dû exiger drupal core (remplacer par votre version):

composer require drupal/core:8.6.3 --update-with-dependencies

Dans le fichier composer.json sous replace, nous avons dû supprimer "drupal/core": "^ 8.6", donc replace ressemble à:

"replace": {

},

dans notre fichier composer.json maintenant. Nous avons ensuite couru:

composer update

et drupal mis à jour vers la dernière version.

3
jasonflaherty