Warum funktioniert "Composer Update Drupal / Drupal" nicht?

10

Ich habe eine Drupal 8.2.0-Site mit installiert composer create-project drupal/drupal testsite.

Jetzt möchte ich es auf Drupal 8.2.1 aktualisieren. Laufen composer update drupal/drupal funktioniert jedoch nicht. Es wird der folgende Fehler ausgegeben:

Das zum Update aufgeführte Paket "drupal / drupal" ist nicht installiert. Ignorieren.

Wie mache ich das? Die Unterstützung ist in example.gitignore klar dokumentiert.

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

Es muss also eine Möglichkeit geben, dies mit dem Komponisten zu tun, aber wie?

Christoph Burschka
quelle

Antworten:

5

Bearbeiten: Dies ist wahrscheinlich nicht hilfreich, da ich Ihre Aussage gerade noch einmal gelesen habe und Sie nicht den gleichen Fall hatten wie ich, in dem ich von einer alten Drupal 8-Installation kam, aber ich werde dies für den Fall belassen, falls jemand anderes dies hat Problem und versuchen Sie zu sehen, ob ich das spezifische Problem finden kann, das Sie haben. Es tut uns leid.

Ich hatte dieses Problem, als ich mich mit einem kürzlich durchgeführten Update befasste, und dies war mein Problem, aber YMMV. Wenn es nicht funktioniert, lassen Sie es mich einfach wissen.

Dies kann daran liegen, dass Ihre Composer-Datei auf die alte Repository-Liste auf composer.org eingestellt ist. Vor kurzem hat Drupal eigene Composer-Endpunkte eingerichtet, einen für Drupal 7 und einen für Drupal 8. Weitere Informationen zu dieser Änderung finden Sie hier: https://www.drupal.org/docs/develop/using-composer/using-composer- to-install-drupal-packages-through-drupalorg

Dies ist der Befehl, der ausgeführt werden muss, um das Repository über Drupal.org auszutauschen.

$ composer config repositories.0 
$ composer https://packages.drupal.org/8
Verbrennungszeremonie
quelle
2
Interessante Fehlermeldung von diesem zweiten Befehl: "Im Namespace" https "sind keine Befehle definiert." Ich bin jetzt wirklich verloren.
Mojo
4

Ich glaube, ich habe es gelöst. Ich dachte mir, ich würde eine andere root composer.json-Datei benötigen, die das Drupal-Paket abruft, anstatt es zu ersetzen, aber ich wusste nicht, wie ich das machen soll.

Glücklicherweise hat dies bereits jemand getan und Drupal komponentenfreundlich neu verpackt: https://github.com/drupal-composer/drupal-project (anscheinend noch keine stabile Version.)

Durch die Verwendung composer create-project drupal-composer/drupal-project:8.x-dev --stability dev drupal-dirkonnte ich eine Installation erhalten, die mit Composer aktualisiert werden kann.

Christoph Burschka
quelle
2
Der Befehl composer create-projectverwendet das angeforderte Projekt als Vorlage für das neue Projekt. Bei Ihrem ersten Versuch wurde git.drupal.org/project/drupal.git als Vorlage für Ihr neues Projekt verwendet. Wenn Sie stattdessen github.com/drupal-composer/drupal-project als Vorlage verwenden, wird Drupal zu einem Teil des Projekts. In der Tat drupal/drupalverwendet es drupal/core(für das Kernverzeichnis) und drupal-composer/drupal-scaffoldfür die anderen wichtigen Dateien wie index.php und .htaccess.
David Lanier
3

Der Befehl composer create-projectklont das angeforderte Paket, in diesem Fall https://git.drupal.org/project/drupal.git . Am Ende des Projekterstellungsprozesses sollten Sie gefragt werden, ob Sie den vorhandenen VCS-Verlauf entfernen möchten. Wenn Sie geantwortet haben n, können Sie über das Upstream-Drupal-Repository aktualisieren. Navigieren Sie zur Testseite und verwenden Sie git, um die gewünschte Drupal-Version abzurufen und zu überprüfen. Führen Sie dann aus composer install, um die in composer.json und composer.lock der aktualisierten Version von Drupal identifizierten Abhängigkeiten abzurufen.

David Lanier
quelle
3

In der Kommandozeile mussten wir Drupal Core benötigen (durch Ihre Version ersetzen):

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

In der Datei composer.json unter "Ersetzen" mussten wir "drupal / core" entfernen: "^ 8.6". Ersetzen sieht also so aus:

"replace": {

},

jetzt in unserer Datei composer.json. Wir rannten dann:

composer update

und Drupal auf die neueste Version aktualisiert.

Jasonflaherty
quelle