Próbuję zaktualizować rdzeń Drupala do wersji 8.3, ale mam trudności.
Na dole strony znajduje się plik composer.json, od którego zaczynam.
Jeśli zmienię „drupal / core”: „~ 8.2” => „drupal / core”: „~ 8.3”, a następnie uruchomię composer update drupal/core --with-dependencies
, otrzymuję następujące problemy, których nie jestem pewien, jak to rozwiązać, ponieważ nie są one zawarte w kompozytorze Plik .json, który zamieściłem poniżej.
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].
oryginalny 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"
}
]
}
Odpowiedzi:
Podobnie jak @rreiss musiałem usunąć .lock. Oto, co zadziałało dla mnie:
wiersz pierwszy może być unikalny dla twojego projektu, potwierdź, wyszukując ścieżki instalatora w pliku composer.json.
źródło
Właśnie wpadłem na to samo. Aby naprawić, utworzyłem kopię zapasową / usunąłem katalog / vendor i ponownie uruchomiłem „aktualizację kompozytora”, aby Composer ponownie pobierał wszystkie zależności. Wydaje mi się, że zainstalowane zależności vs. wymagane nie są zsynchronizowane.
źródło
Miałem bardzo podobny problem podczas próby aktualizacji z 8.3.7 do 8.4.0. Myślę, że znalazłem winowajcę.
W pliku DOCROOT composer.json widzę następujące wiersze:
To powoduje, że plik DOCROOT composer.json odwołuje się do
core/composer.json
pliku, a także wymaga tych zależności. Problem polega na tym, że patrzy na zależności od aktualnie zainstalowanej wersji Drupala, podczas gdy uaktualniona wersja ma nowe zależności. To tworzy konflikt, który widzimy.Oto znalezione przeze mnie rozwiązanie, które działa. Robi nie wymagają usuwania plików ani modułów.
1) Pobierz kopię
core/composer.json
pliku z tarballa wersji Drupala, na którą aktualizujesz .2) W bieżącej instalacji, zastąpić ten
core/composer.json
plik z nową wersją po prostu pobrać.3) Zaktualizuj plik DOCROOT composer.json za pomocą „drupal / core: ~ 8.xx” (cokolwiek aktualizujesz).
4) Uruchom
composer update --with-dependencies
jak zwykle. Tym razem aktualizacja powinna być kontynuowana. Następnie zastosuj aktualizacje bazy danych / encji, odbuduj pamięć podręczną itp. Itp.Jestem użytkownikiem systemu Windows i zdecydowanie bardziej jestem twórcą stron, więc nawet nie będę próbował publikować wierszy poleceń w celu wykonania tych czynności w systemie Linux. I nie jestem pewien, czy jest to „właściwe” rozwiązanie, czy nawet dlaczego powyższy kod blokuje aktualizację, ale to mi się udało!
źródło
Po prostu zauważam, że to wydawało się działać dla mnie w przypadku aktualizacji rdzenia z wersji 8.2.3> 8.3.7. Uwaga: moja instalacja Drupal 8 używała tego: https://github.com/drupal-composer/drupal-scaffold, który ma następującą strukturę katalogów:
.git
.gitignore
composer.json
composer.lock skrypty
konfiguracyjne dostawcy WWW
rm -rf vendor && rm -rf web/core && rm -f composer.lock
composer require drupal/core:8.3.7 --update-with-dependencies
drush updb
) i uruchom aktualizacje. To powie, że jest 17 do uruchomienia. Prawdopodobnie zwróci błędy, jeśli tak, przejdź do /update.php i ponownie uruchom aktualizacje (tym razem powie, że jest mniej do uruchomienia). Po zakończeniu przejdź do strony głównej.źródło