J'essaie de mettre à jour Drupal core vers 8.3 mais je rencontre des difficultés.
Au bas de la page se trouve le fichier composer.json avec lequel je commence.
Si je change "drupal/core": "~ 8.2" => "drupal/core": "~ 8.3" puis je lance composer update drupal/core --with-dependencies
Je reçois les problèmes suivants que je ne sais pas comment résoudre ce problème car ils ne sont pas contenus dans le fichier composer.json que j'ai inclus ci-dessous.
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"
}
]
}
Semblable à @rreiss j'ai dû supprimer .lock. C'est ce qui a fonctionné pour moi:
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
la première ligne peut être unique à votre projet, confirmez en recherchant les chemins d'installation dans votre composer.json.
J'ai eu un problème très similaire lors de la tentative de mise à niveau de 8.3.7 vers 8.4.0. Je pense avoir trouvé le coupable.
Dans le fichier DOCROOT composer.json, je vois les lignes suivantes:
"merge-plugin": {
"include": [
"core/composer.json"
],
"recurse": false,
"replace": false,
"merge-extra": false
},
Ainsi, le fichier DOCROOT composer.json fait référence au core/composer.json
file et nécessitent également ces dépendances. Le problème est qu'il examine les dépendances de votre version actuellement installée de Drupal, tandis que la version mise à niveau a de nouvelles dépendances. Cela crée le conflit que nous voyons.
Voici la solution que j'ai trouvée qui fonctionne. Il pas nécessite de supprimer tous les fichiers ou modules.
1) Téléchargez une copie du core/composer.json
fichier de l'archive tar de la version de Drupal vous mettez à niveau vers.
2) Dans votre installation actuelle, remplacez le core/composer.json
fichier avec la nouvelle version que vous venez de télécharger.
3) Mettez à jour votre fichier DOCROOT composer.json avec "drupal/core: ~ 8.x.x" (quelle que soit la mise à niveau).
4) Exécutez composer update --with-dependencies
comme d'habitude. Cette fois, la mise à jour devrait se poursuivre. Ensuite, appliquez les mises à jour de la base de données/entités, reconstruisez le cache, etc. etc.
Je suis un utilisateur Windows et certainement plus un constructeur de sites, donc je n'essaierai même pas de publier des invites de ligne de commande pour faire ces choses sous Linux. Et je ne sais pas si c'est une solution "correcte", ni même pourquoi le code ci-dessus bloque la mise à niveau, mais c'est ce qui a fonctionné pour moi!
Je suis juste tombé sur cette même chose. Pour résoudre ce problème, j'ai sauvegardé/supprimé le répertoire/vendor et j'ai exécuté à nouveau la 'mise à jour du compositeur' pour que Composer télécharge à nouveau toutes les dépendances. Je pense que les dépendances installées par rapport aux exigences nécessaires se désynchronisent.
Juste en notant que cela semblait fonctionner pour moi pour la mise à jour principale de 8.2.3> 8.3.7. Notez mon Drupal 8 a utilisé ceci: https://github.com/drupal-composer/drupal-scaffold qui a cette structure de répertoire:
.git
. gitignore
composer.json
composer.lock
config
scripts
vendeur
la toile
rm -rf vendor && rm -rf web/core && rm -f composer.lock
composer require drupal/core:8.3.7 --update-with-dependencies
drush updb
) et exécutez les mises à jour. Il dira qu'il y en a 17 à courir. Il retournera probablement des erreurs, si c'est le cas, allez dans /update.php et exécutez à nouveau les mises à jour (cette fois, il y aura moins à exécuter). Accédez à la page d'accueil une fois terminé.