Я пытаюсь обновить ядро Drupal до 8.3, но сталкиваюсь с трудностями.
Внизу страницы находится файл composer.json, с которого я начинаю.
Если я изменяю "drupal / core": "~ 8.2" => "drupal / core": "~ 8.3" и затем запускаю, composer update drupal/core --with-dependencies
я получаю следующие проблемы, которые я не уверен, как решить эту проблему, поскольку они не содержатся в композиторе Файл .json, который я включил ниже.
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].
оригинальный 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"
}
]
}
Ответы:
Подобно @rreiss, мне пришлось удалить .lock. Вот что сработало для меня:
Первая строка может быть уникальной для вашего проекта, подтвердите, посмотрев пути к установщику в вашем composer.json.
источник
Просто столкнулся с тем же. Чтобы исправить это, я сделал резервную копию / удалил каталог / vendor и снова запустил «обновление композитора», чтобы Composer заново загрузил все зависимости. Я думаю, что установленные зависимости от требуемого не синхронизированы.
источник
У меня была очень похожая проблема при попытке обновления с 8.3.7 до 8.4.0. Я думаю, что нашел виновника.
В файле DOCROOT composer.json я вижу следующие строки:
Таким образом, это указывает файлу DOCROOT composer.json ссылаться на
core/composer.json
файл и также требовать этих зависимостей. Проблема заключается в том, что он просматривает зависимости от установленной на данный момент версии Drupal, тогда как обновленная версия имеет новые зависимости. Это создает конфликт, который мы видим.Вот решение, которое я нашел, которое работает. Он не требует удаления каких - либо файлов или модулей.
1) Загрузите копию
core/composer.json
файла из архива версии Drupal, до которой вы обновляетесь .2) В текущей версии, замените в
core/composer.json
файл с новой версией вы только что загрузили.3) Обновите файл DOCROOT composer.json с помощью «drupal / core: ~ 8.xx» (независимо от того, что вы обновляете).
4) Беги
composer update --with-dependencies
как обычно. На этот раз обновление должно продолжаться. Затем примените обновления базы данных / сущности, восстановите кеш и т. Д. И т. Д.Я пользователь Windows и, безусловно, в большей степени разработчик сайтов, поэтому я даже не буду пытаться публиковать приглашения командной строки для выполнения этих действий в Linux. И я не уверен, является ли это «правильным» решением или даже почему вышеприведенный код блокирует обновление, но это то, что сработало для меня!
источник
Просто отметив, что мне показалось, что это работает для обновления ядра с 8.2.3> 8.3.7. Обратите внимание, что моя установка Drupal 8 использовала это: https://github.com/drupal-composer/drupal-scaffold, который имеет такую структуру каталогов:
.git
.gitignore
composer.json
composer.lock
Конфигурационные
скрипты Веб-сайт
поставщика
rm -rf vendor && rm -rf web/core && rm -f composer.lock
composer require drupal/core:8.3.7 --update-with-dependencies
drush updb
) и запустите обновления. Это скажет, что есть 17, чтобы бежать. Вероятно, он вернет ошибки, если это так, перейдите в /update.php и снова запустите обновления (на этот раз будет сказано, что запускать нужно меньше). Перейти на домашнюю страницу, когда это будет сделано.источник