Aktualisieren des Kerns von 8.2 auf 8.3 über Composer

9

Ich versuche, Drupal Core auf 8.3 zu aktualisieren, stoße jedoch auf Schwierigkeiten.

Am Ende der Seite befindet sich die Datei composer.json, mit der ich beginne.

Wenn ich "drupal / core" ändere: "~ 8.2" => "drupal / core": "~ 8.3" und dann starte, erhalte composer update drupal/core --with-dependenciesich die folgenden Probleme, bei denen ich nicht sicher bin, wie ich das beheben soll, da sie nicht im Composer enthalten sind .json Datei, die ich unten aufgenommen habe.

Your requirements could not be resolved to an installable set of packages.



   Problem 1
    - drupal/core 8.3.0 requires symfony/psr-http-message-bridge ^1.0 -> satisfiable by symfony/psr-http-message-bridge[1.0.x-dev].
    - drupal/core 8.3.x-dev requires symfony/psr-http-message-bridge ^1.0 -> satisfiable by symfony/psr-http-message-bridge[1.0.x-dev].
    - drupal/core 8.4.x-dev requires symfony/psr-http-message-bridge ^1.0 -> satisfiable by symfony/psr-http-message-bridge[1.0.x-dev].
    - Conclusion: don't install symfony/psr-http-message-bridge 1.0.x-dev
    - Conclusion: don't install drupal/core 8.3.0-rc2
    - Conclusion: don't install drupal/core 8.3.0-rc1
    - Conclusion: don't install drupal/core 8.3.0-beta1
    - Installation request for symfony/psr-http-message-bridge v0.2 -> satisfiable by symfony/psr-http-message-bridge[v0.2].
    - Conclusion: remove symfony/dom-crawler v3.2.6
    - Installation request for drupal/core ~8.3 -> satisfiable by drupal/core[8.3.0, 8.3.0-alpha1, 8.3.0-beta1, 8.3.0-rc1, 8.3.0-rc2, 8.3.x-dev, 8.4.x-dev].
    - Conclusion: don't install symfony/dom-crawler v3.2.6
    - drupal/core 8.3.0-alpha1 requires symfony/dom-crawler >=2.8.13 <3.0 -> satisfiable by symfony/dom-crawler[2.8.x-dev, v2.8.13, v2.8.14, v2.8.15, v2.8.16, v2.8.17, v2.8.18, v2.8.19].
    - Can only install one of: symfony/dom-crawler[2.8.x-dev, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.13, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.14, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.15, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.16, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.17, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.18, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.19, v3.2.6].
    - Installation request for symfony/dom-crawler (locked at v3.2.6) -> satisfiable by symfony/dom-crawler[v3.2.6].

original composer.json

{
"name": "drupal/drupal",
"description": "Drupal is an open source content management platform powering millions of websites and applications.",
"type": "project",
"license": "GPL-2.0+",
"require": {
    "drupal/core": "~8.2",
    "drupal/backup_migrate": "4.x-dev",
    "composer/installers": "^1.0.21",
    "wikimedia/composer-merge-plugin": "~1.3",
    "drupal/console": "^1.0",
    "drupal/file_browser": "^1.0@alpha",
    "enyo/dropzone": "4.2.0",
    "desandro/masonry": "3.3.1",
    "desandro/imagesloaded": "3.1.8",
    "drupal/admin_toolbar": "^1.18",
    "drupal/ctools": "^3.0@alpha",
    "drupal/devel": "^1.0@beta",
    "drupal/migrate_tools": "^3.0",
    "drupal/migrate_plus": "^3.0",
    "drupal/media_entity": "^1.6",
    "drupal/media_entity_document": "^1.1",
    "drupal/media_entity_image": "^1.2",
    "drupal/inline_entity_form": "^1.0@beta",
    "drupal/entity_embed": "^1.0@beta",
    "drupal/entity_browser": "^1.0@beta",
    "paquettg/php-html-parser": "^1.7",
    "drupal/better_exposed_filters": "^3.0@alpha",
    "drupal/workbench_access": "^1.0@alpha",
    "drupal/webform": "^5.0@beta",
    "j7mbo/twitter-api-php": "^1.0",
    "nesbot/carbon": "^1.22",
    "Drupal/userprotect": "^1.0",
    "drupal/config_ignore": "^1.2",
    "Drupal/permissions_by_term": "^1.16",
    "Drupal/views_menu_children_filter": "^1.0@alpha",
    "drupal/sitemap": "^1.2",
    "drupal/xmlsitemap": "^1.0@alpha",
    "drupal/simple_sitemap": "^2.8",
    "drupal/redirect": "^1.0@alpha",
    "drupal/metatag": "^1.0",
    "drupal/acl": "^1.0@alpha",
    "drupal/examples": "1.x-dev",
    "drupal/honeypot": "^1.23",
    "drupal/field_collection": "^1.0@alpha",
    "drupal/dropzonejs": "^1.0@alpha",
    "drupal/embed": "^1.0@RC",
    "drupal/pathauto": "^1.0@RC",
    "drupal/rabbit_hole": "^1.0@beta",
    "drupal/entity_reference_display": "^1.0",
    "drupal/field_group": "^1.0@RC",
    "drupal/layouter": "^1.0",
    "drupal/mailsystem": "^4.1",
    "drupal/mimemail": "^1.0@alpha",
    "drupal/permissions_by_term": "^1.17",
    "drupal/content_access": "1.x-dev",
    "drupal/rules": "^3.0@alpha",
    "drupal/smart_trim": "^1.0",
    "drupal/taxonomy_menu": "^3.3",
    "drupal/token": "^1.0@RC",
    "drupal/typed_data": "^1.0@alpha",
    "drupal/video_embed_field": "^1.4",
    "drupal/views_infinite_scroll": "^1.3",
    "drupal/noreferrer": "^1.1",
    "drupal/system_status": "^2.4",
    "drupal/google_analytics": "^2.1"
},
"replace": {

},
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
    "preferred-install": "dist",
    "autoloader-suffix": "Drupal8"
},
"extra": {
    "_readme": [
        "By default Drupal loads the autoloader from ./vendor/autoload.php.",
        "To change the autoloader you can edit ./autoload.php."
    ],
    "merge-plugin": {
        "include": [
            "core/composer.json"
        ],
        "recurse": false,
        "replace": false,
        "merge-extra": false
    },
    "installer-paths": {
        "modules/contrib/{$name}": [
            "type:drupal-module"
        ],
        "modules/custom/{$name}": [
            "type:drupal-custom-module"
        ],
        "libraries/{$name}": [
            "type:drupal-library"
        ],
        "profiles/contrib/{$name}": [
            "type:drupal-profile"
        ],
        "themes/contrib/{$name}": [
            "type:drupal-theme"
        ],
        "themes/custom/{$name}": [
            "type:drupal-custom-theme"
        ]
    }
},
"autoload": {
    "psr-4": {
        "Drupal\\Core\\Composer\\": "core/lib/Drupal/Core/Composer"
    }
},
"scripts": {
    "pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump",
    "post-autoload-dump": "Drupal\\Core\\Composer\\Composer::ensureHtaccess",
    "post-package-install": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup",
    "post-package-update": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup"
},
"dependencies": {
    "backupmigrate/core": "dev-master",
    "psr/log": "dev-master"
},
"repositories": [
    {
        "type": "composer",
        "url":  "https://packages.drupal.org/8"
    },
    {
        "type": "package",
        "package": {
            "name": "desandro/masonry",
            "version": "3.3.1",
            "type": "drupal-library",
            "dist": {
                "url": "https://github.com/desandro/masonry/archive/v3.3.1.zip",
                "type": "zip"
            }
        }
    },
    {
        "type": "package",
        "package": {
            "name": "desandro/imagesloaded",
            "version": "3.1.8",
            "type": "drupal-library",
            "dist": {
                "url": "https://github.com/desandro/imagesloaded/archive/v3.1.8.zip",
                "type": "zip"
            }
        }
    },
    {
        "type": "package",
        "package": {
            "name": "enyo/dropzone",
            "version": "4.2.0",
            "type": "drupal-library",
            "source": {
                "url": "https://github.com/enyo/dropzone",
                "type": "git",
                "reference": "origin/master"
            }
        }
    },
    {
        "type": "vcs",
        "url": "https://github.com/backupmigrate/backup_migrate_core"
    }
]

}}

Rob Holmes
quelle
Ich bin letzte Woche darauf gestoßen und habe es behoben, bin mir aber nicht 100% sicher, was ich getan habe (ich verwende auch webflo / drupal-core-strict). Ich würde gerne eine endgültige Antwort darauf sehen.
mpdonadio

Antworten:

3

Ähnlich wie bei @rreiss musste ich .lock löschen. Das hat bei mir funktioniert:

rm -rf vendor && rm -rf docroot/core && rm -rf docroot/modules/contrib && rm -f composer.lock

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

Zeile eins kann für Ihr Projekt eindeutig sein. Bestätigen Sie dies, indem Sie in Ihrer composer.json nach Installationspfaden suchen.

powpow12
quelle
1

Bin gerade auf dasselbe gestoßen. Um dies zu beheben, habe ich das Verzeichnis / vendor gesichert / gelöscht und 'composer update' erneut ausgeführt, damit Composer alle Abhängigkeiten erneut herunterlädt. Ich denke, installierte Abhängigkeiten im Vergleich zu erforderlichen sind nicht mehr synchron.

Keith Savoie
quelle
2
Auf diese Weise behebe ich ähnliche Composer-Probleme. Ich finde es eine frustrierende "Lösung", weil es sich wie ein Hack anfühlt. Wenn der Zweck von Composer darin besteht, meine Abhängigkeiten zu verwalten, erwarte ich von Composer, dass er mit solchen Dingen umgeht. So wie es ist (mit diesem 'Fix'), scheint Composer eher ein Werkzeug zu sein, um meine Drupal-Abhängigkeiten zu INSTALLIEREN. Auch dies fühlt sich wie ein langwieriger Hack an, da dies eine Verbesserung gegenüber der Methode zum Herunterladen der neuen Zip-Datei und zum Überschreiben der vorhandenen Drupal-Installationsmethode darstellen soll.
RominRonin
1
Ich habe das gleiche Problem erlebt und musste auch composer.lock löschen .. drupal.org/node/2836351#comment-12056279
rreiss
1

Ich hatte ein sehr ähnliches Problem beim Versuch, ein Upgrade von 8.3.7 auf 8.4.0 durchzuführen. Ich glaube, ich habe den Täter gefunden.

In der Datei DOCROOT composer.json werden die folgenden Zeilen angezeigt:

"merge-plugin": {
    "include": [
        "core/composer.json"
    ],
    "recurse": false,
    "replace": false,
    "merge-extra": false
},

Dies weist die Datei DOCROOT composer.json an, auf die core/composer.jsonDatei zu verweisen, und erfordert auch diese Abhängigkeiten. Das Problem ist, dass die Abhängigkeiten von Ihrer aktuell installierten Version von Drupal untersucht werden, während die aktualisierte Version neue Abhängigkeiten aufweist. Dies schafft den Konflikt, den wir sehen.

Hier ist die Lösung, die ich gefunden habe und die funktioniert. Es ist nicht erforderlich, Dateien oder Module zu löschen.

1) Laden Sie eine Kopie der core/composer.jsonDatei vom Tarball der Drupal-Version herunter, auf die Sie aktualisieren .

2) Ersetzencore/composer.json Sie in Ihrer aktuellen Installation die Datei durch die neue Version, die Sie gerade heruntergeladen haben.

3) Aktualisieren Sie Ihre DOCROOT composer.json-Datei mit "drupal / core: ~ 8.xx" (auf was auch immer Sie aktualisieren).

4) composer update --with-dependenciesWie gewohnt ausführen. Dieses Mal sollte das Update fortgesetzt werden. Wenden Sie dann Datenbank- / Entitätsaktualisierungen an, erstellen Sie den Cache neu usw. usw.

Ich bin ein Windows-Benutzer und definitiv eher ein Site Builder, daher werde ich nicht einmal versuchen, Befehlszeilenanweisungen zu veröffentlichen, um diese Dinge unter Linux auszuführen. Und ich bin mir nicht sicher, ob dies eine "richtige" Lösung ist oder warum der obige Code das Upgrade blockiert, aber genau das hat bei mir funktioniert!

Tynan Fox
quelle
0

Ich habe nur bemerkt, dass dies für mich für das Kernupdate von 8.2.3> 8.3.7 zu funktionieren schien. Beachten Sie, dass meine Drupal 8-Installation Folgendes verwendet hat: https://github.com/drupal-composer/drupal-scaffold mit dieser Verzeichnisstruktur:

.git
.gitignore
composer.json
composer.lock
config -
Skripte
Anbieter
web

  • Versetzen Sie die Site in den Wartungsmodus: / admin / config / development / wartung
  • Führen Sie diesen Befehl im Stammverzeichnis der Site aus: rm -rf vendor && rm -rf web/core && rm -f composer.lock
  • Führen Sie diesen Befehl im Stammverzeichnis der Site aus: composer require drupal/core:8.3.7 --update-with-dependencies
  • Gehen Sie zu /update.php (oder drush updb) und führen Sie die Updates aus. Es wird sagen, dass es 17 zu laufen gibt. Es wird wahrscheinlich Fehler zurückgeben. Wenn ja, gehen Sie zu /update.php und führen Sie die Updates erneut aus (diesmal heißt es, dass weniger ausgeführt werden müssen). Gehen Sie zur Startseite, wenn es fertig ist.
  • Überprüfen Sie die Website.
  • Nehmen Sie die Site aus dem Wartungsmodus: / admin / config / development / wartung
Richard Hood
quelle