Чому "оновлення композитора друпаль / друпал" не працює?


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.org. Нещодавно Drupal встановив власні кінцеві точки композитора, одну для Drupal 7 та іншу для Drupal 8. Ви можете прочитати більше про цю зміну тут: https://www.drupal.org/docs/develop/using-composer/using-composer- встановлювати-drupal-пакети-через-drupalorg

Це команда, яку потрібно виконати для заміни сховища на Drupal.org.

$ composer config repositories.0 
$ composer https://packages.drupal.org/8

2
Цікаве повідомлення про помилку цієї другої команди: "У просторі імен" https "не визначені команди." Зараз я справді загубився.
Mojo

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мені вдалося отримати інсталяцію, яку можна оновити композитором.


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, у вас з'явиться спосіб оновлення з висхідного сховища друпалів. Перейдіть на тестовий сайт і використовуйте git, щоб отримати та перевірити потрібну версію Drupal. Потім запустіть, composer installщоб отримати залежності, визначені в composer.json та composer.lock оновленої версії Drupal.


3

У командному рядку нам потрібно було вимагати drupal core (замінити на вашу версію):

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

У файлі composer.json під заміною нам довелося видалити "drupal / core": "^ 8.6", тому заміна виглядає так:

"replace": {

},

у нашому файлі composer.json зараз. Потім ми побігли:

composer update

і drupal оновлено до останньої версії.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.