[gelöst] update von 8.6.15 auf 8.7.x mit composer
Eingetragen von Dorothea_Z (182)
am 15.05.2019 - 04:33 Uhr in
am 15.05.2019 - 04:33 Uhr in
Hallo zusammen,
Ich will auf meiner lokalen Installation (also nicht auf dem Server, sondern zu Hause) auf meinen ubuntu-System die Drupal 8.6.15 auf 8.7.1 mit composer aktualisieren.
Dabei habe ich die Anleitung hier verwendet: https://www.drupal.org/docs/8/update/update-core-via-composer
Wenn ich
composer prohibits drupal/core:8.7.1
eingebe, dann kommen folgende Hinweise:
webflo/drupal-core-require-dev 8.6.15 requires drupal/core (8.6.15)
drupal/core 8.7.1 requires egulias/email-validator (^2.0)
drupal-composer/drupal-project - does not require egulias/email-validator (but 1.2.15 is installed)
Wenn ich die Anleitung richtig verstanden habe, liegt ein Problem in der Konfiguration von composer.json vor. Die habe ich m.W. nicht bewusst verändert oder definiert.
Ich dachte immer, wenn ich mit composer drupal8 neu installiere, passt erst mal alles und ich mache ein update mit
composer update drupal/core webflo/drupal-core-require-dev --with-dependencies
Bevor ich nun lange an der composer.json herumbastele, scheint mir eine Neuinstallation von drupal8 fast schneller - oder habe ich vielleicht nur eine Kleinigkeit zu ändern?
Muss ich mit composer die "email validator 1.2.15" deinstallieren und dann eine 2.x neu installieren? oder geht das mit drush?
Sorry für meine Fragen, aber ich habe bislang unter drupal7 solche "Kleinigkeiten" bei updates nie machen müssen, da lief alles via FTP. Aber da mir composer und drush via SSH schon eine große Hilfe sind, würde ich gerne verstehen, wie ich das nun sinnvollerweise effektiv anpacken kann...
Und in der Anleitung steht leider nicht sehr viel, wie ich die Hinweise/Probleme nach "composer prohibts" dann schnell lösen kann.
Danke für ein paar Hinweise!
LG
D.
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich habe das Update von
am 15.05.2019 - 11:53 Uhr
Ich habe das Update von D8.6.15 nach D8,7.1 wie folgt durchgeführt:
Danach war Drupal auf dem neusten Stand und auch evtl vorhandene Module waren upgedatet.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
So wie Werner habe ich das
am 16.05.2019 - 07:29 Uhr
So wie Werner habe ich das bei niedrigeren Stufen von D8 auch gemacht und NUR damit Erfolg gehabt.
Bzw. ich habe auch noch in der composer.json die gewünschte Drupal Core Version unter required eingetragen.
Damit dann letztendlich immer Erfolg gehabt, wo es vorher an diesem oder jenem scheiterte.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
ging auch so.
am 16.05.2019 - 07:57 Uhr
Bei mir hat ein einfaches composer update auch die Version von email-validator auf 2.x upgedatet. Das habe ich nicht mal mitbekommen. Erst als ich wegen anderen Problemen wieder zur 8.6.x zurückkehren wollte, habe ich das gesehen.
Ich habe dafür große Probleme mit einigen post-update-Datenbankaktualisierungen, siehe hier. https://www.drupalcenter.de/node/59375
---
Drupal 7.x 8.x auf https://www.citykirche-schweinfurt.de und ca. 15 weiteren (Liste auf https://www.kuschelkirche.de/webdesign-und-betreuung )
Der Grund für den Abbruch der Aktualisierung ist folgender:
am 16.05.2019 - 08:13 Uhr
Hallo zusammen,
composer prohibits drupal/core:8.7.1
eingebe, dann kommen folgende Hinweise:
webflo/drupal-core-require-dev 8.6.15 requires drupal/core (8.6.15)
drupal/core 8.7.1 requires egulias/email-validator (^2.0)
drupal-composer/drupal-project - does not require egulias/email-validator (but 1.2.15 is installed)
Das Problem ist der Versionsbegrenzer ^
Bedeutung Version von bis Begrenzungszeichen (^)
Erklärung: Der Operator ^ erlaubt es Updates so durchzuführen, dass dabei die Installation nicht beschädigt wird.
Beispielsweise bedeutet ^1.2.3 das gleiche wie >=1.2.3 <2.0.0
Dem Modulentwickler ist bekannt, dass alle Ausgaben einer Abhängigkeit bis 2.0 rückwärtskompatibel zum verwendeten Code sind.
Das Begrenzungszeichen funktioniert auch für Versionen unter 1.0 und funktioniert hier so: ^0.3 das >=0.3.0 <0.4.0.
Daher wird empfohlen den Operator ^zu verwenden, wenn Programmbibliotheken geschrieben werden müssen.
Beispiel: ^2.0
Fallbeispiel:In deinem Fall bedeutet dies, das die Bibliothek egulias/email-validator nur bis zur Version 2.0 installiert wird. In Drupal 8.7.1 wird eine höhere Versionsnummer für diese Bibliothek verwendet. Daher wird das normale Update abgebrochen, da es so in der composer.json festgelegt ist.
egulias/email-validator (^2.0)
drupal-composer/drupal-project - benötigt egulias/email-validator nicht mehr (Version 1.2.15 ist aber auf dem System installiert)
ist der Grund, warum das Update abgebrochen wird. Anders ausgedrückt bedeutet das, dass Composer der sagen will.
„Lieber Administrator, kannst du bitte die Abhängigkeit Auflösen, damit ich weiß, ob ich die nächste Drupal-Version installieren kann, ohne dein System kaputt zu machen?“
Soll heißen, bis Version 1.2.9.9 hättest du Drupal wunderbar installieren können. Dein Metapaket referenziert die Abhängigkeit nicht, was dir Composer auch bereitwillig mitgeteilt hat. Muss es auch nicht, weil das der Drupal Core selbst tut.
https://drupal-tv.de
Drupal sehen und lernen
Danke, Werner
am 18.05.2019 - 09:18 Uhr
Deine Hinweise haben das Problem bei meinem System gelöst.
Composer und drush sind schon sehr praktisch.
LG
D.
"Wenn der eine nicht will, können zwei nicht miteinander streiten."
Arno Backhaus