Perché "compositore aggiorna drupal / drupal" non funziona?


10

Ho installato un sito Drupal 8.2.0 con composer create-project drupal/drupal testsite.

Ora vorrei aggiornarlo a Drupal 8.2.1. Tuttavia, l'esecuzione composer update drupal/drupal non funziona. Stampa il seguente errore:

Il pacchetto "drupal / drupal" elencato per l'aggiornamento non è installato. Ignorando.

Come faccio a fare questo? Il supporto è chiaramente documentato in example.gitignore.

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

Quindi ci deve essere un modo per farlo con il compositore, ma come?

Risposte:


5

Modifica: questo probabilmente non è utile b / c Ho appena riletto la tua dichiarazione e non hai avuto lo stesso caso del mio in cui provenivo da una vecchia installazione di Drupal 8 ma lo lascerò nel caso in cui altri lo abbiano problema e prova a vedere se riesco a trovare il problema specifico che stai riscontrando. Scusate.

Ho avuto questo problema quando ho a che fare con un aggiornamento recente e questo era il mio problema, ma YMMV, quindi se non funziona fammelo sapere.

Questo potrebbe essere un problema per il fatto che il tuo file compositore è impostato sul vecchio elenco di repository su composer.org. Recentemente, Drupal ha impostato i propri endpoint del compositore, uno per Drupal 7 e un altro per Drupal 8. Puoi leggere di più su questo cambiamento qui: https://www.drupal.org/docs/develop/using-composer/using-composer- to-install-Drupal-packages-through-drupalorg

Questo è il comando che deve essere eseguito per scambiare il repository su Drupal.org.

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

2
Messaggio di errore interessante da quel secondo comando: "Non ci sono comandi definiti nello spazio dei nomi" https "." Sono davvero perso ora.
Mojo

4

Penso di averlo risolto. Ho pensato che avrei avuto bisogno di un diverso file root composer.json che estraesse il pacchetto drupal invece di sostituirlo, ma non sapevo come farlo.

Fortunatamente, qualcuno ha già fatto questo e riconfezionato Drupal in un modo adatto al compositore: https://github.com/drupal-composer/drupal-project (Apparentemente non esiste ancora una versione stabile).

Usando composer create-project drupal-composer/drupal-project:8.x-dev --stability dev drupal-dirsono stato in grado di ottenere un'installazione che può essere aggiornata con il compositore.


2
Il comando composer create-projectusa il progetto richiesto come modello per il nuovo progetto, quindi nel tuo primo tentativo, git.drupal.org/project/drupal.git è stato usato come modello per il tuo nuovo progetto. Utilizzando github.com/drupal-composer/drupal-project come modello, invece, Drupal fa parte del progetto. Infatti, invece di utilizzare drupal/drupal, utilizza drupal/core(per la directory principale) e drupal-composer/drupal-scaffoldper gli altri file importanti come index.php e .htaccess.
David Lanier,

3

Il comando composer create-projectclona il pacchetto richiesto, che in questo caso è https://git.drupal.org/project/drupal.git . Al termine del processo di creazione del progetto, ti verrà chiesto se desideri rimuovere la cronologia VCS esistente. Se hai risposto n, avrai un modo per aggiornare dal repository upup drupal. Passare al sito di test e utilizzare git per recuperare e verificare la versione di Drupal desiderata. Quindi eseguire composer installper ottenere le dipendenze identificate in composer.json e composer.lock della versione aggiornata di Drupal.


3

Sulla riga di comando, abbiamo dovuto richiedere il core drupal (sostituirlo con la tua versione):

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

Nel file composer.json in sostituzione abbiamo dovuto rimuovere "drupal / core": "^ 8.6", quindi sostituisci assomiglia a:

"replace": {

},

nel nostro file composer.json ora. Abbiamo quindi eseguito:

composer update

e drupal aggiornati all'ultima versione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.