Почему «обновление композитора drupal / drupal» не работает?

10

Я установил сайт Drupal 8.2.0 с composer create-project drupal/drupal testsite.

Теперь я хотел бы обновить его до Drupal 8.2.1. Однако бег composer update drupal/drupal не работает. Он печатает следующую ошибку:

Пакет "drupal / drupal", указанный для обновления, не установлен. Не обращая внимания.

Как мне это сделать? Поддержка четко документирована в example.gitignore.

# Ignore core when managing all of a project's dependencies with Composer
# including Drupal core.
# core

Так что должен быть какой-то способ сделать это с композитором, но как?

Кристоф Буршка
источник

Ответы:

5

Редактировать: это, вероятно, бесполезно, потому что я просто перечитал ваше заявление, и у вас не было того же случая, что и у меня, где я исходил из старой установки Drupal 8, но я оставлю это, если у кого-то еще есть это и попытайтесь выяснить, смогу ли я найти конкретную проблему, с которой вы столкнулись. Сожалею.

У меня была эта проблема, когда я имел дело с недавним обновлением, и это была моя проблема, но YMMV, так что, если она не работает, просто дайте мне знать.

Это может быть связано с тем, что для вашего файла composer задан старый список хранилищ на composer.org. Недавно Drupal установил свои собственные конечные точки композитора, одну для Drupal 7 и другую для Drupal 8. Вы можете узнать больше об этом изменении здесь: https://www.drupal.org/docs/develop/using-composer/using-composer- к-INSTALL-Друпал-пакеты-через-drupalorg

Это команда, которую нужно запустить, чтобы поменять репозиторий на Drupal.org.

$ composer config repositories.0 
$ composer https://packages.drupal.org/8
burnsjeremy
источник
2
Интересное сообщение об ошибке от второй команды: «В пространстве имен« https »не определено ни одной команды». Я действительно потерянный сейчас.
Моджо
4

Думаю, я решил это. Я подумал, что мне понадобится другой корневой файл composer.json, который вместо пакета закачал пакет drupal, но я не знал, как это сделать.

К счастью, кто-то уже сделал это и переупаковал Drupal удобным для композиторов способом: https://github.com/drupal-composer/drupal-project (По-видимому, пока нет стабильной версии).

С помощью composer create-project drupal-composer/drupal-project:8.x-dev --stability dev drupal-dirя смог получить установку, которая может быть обновлена ​​с помощью composer.

Кристоф Буршка
источник
2
Команда composer create-projectиспользует запрошенный проект в качестве шаблона для нового проекта, поэтому в первой попытке git.drupal.org/project/drupal.git был использован в качестве шаблона для вашего нового проекта. Вместо этого, используя github.com/drupal-composer/drupal-project в качестве шаблона, Drupal становится частью проекта. Фактически, вместо использования drupal/drupalон использует drupal/core(для основного каталога) и drupal-composer/drupal-scaffoldдля других важных файлов, таких как index.php и .htaccess.
Дэвид Ланье
3

Команда composer create-projectклонирует запрошенный пакет, который в данном случае является https://git.drupal.org/project/drupal.git . В конце процесса создания проекта вам будет предложено удалить существующую историю VCS. Если вы ответили n, у вас будет возможность выполнить обновление из вышестоящего хранилища drupal. Перейдите на тестовую площадку и используйте git, чтобы получить и проверить версию Drupal, которую вы хотите. Затем запустите, composer installчтобы получить зависимости, определенные в composer.json и composer.lock обновленной версии Drupal.

Дэвид Ланье
источник
3

В командной строке нам потребовалось ядро ​​drupal (замените на вашу версию):

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

В заменяемом файле composer.json нам пришлось удалить «drupal / core»: «^ 8.6», поэтому замена выглядит так:

"replace": {

},

в нашем файле composer.json сейчас. Затем мы побежали:

composer update

и drupal обновлен до последней версии.

jasonflaherty
источник