C'è un modo per convincere Drush a scaricare tutte le dipendenze richieste per un modulo specifico?


20

Ad esempio se si eseguono i seguenti comandi:

drush dl views
drush en views views_ui views_export

Si otterrà il seguente errore quando si tenta di abilitare i moduli viste:

Le viste dei moduli non possono essere abilitate perché dipendono dai seguenti moduli che non sono stati trovati: ctools

C'è un modo per ottenere drush per scaricare le dipendenze del modulo richieste?


Davvero Drupal dovrebbe semplicemente integrare il compositore. La gestione delle dipendenze sarebbe quindi ben gestita.
— David,

Le versioni più recenti di Drush con drush en -yverranno scaricate e abiliteranno automaticamente le dipendenze.
— tyler.frankenstein,

Risposte:


18

Drush 5 e versioni successive:

Le versioni più recenti di Drush (versione 5 e successive) chiederanno se si desidera scaricare le dipendenze richieste quando si abilita ( drush en) un modulo. Ti verrà anche chiesto se desideri scaricare il modulo stesso se non lo hai ancora scaricato. In combinazione con l'opzione "-y" (ad es. drush en views -y), Tutto verrà scaricato e abilitato automaticamente senza porre ulteriori domande.

Si noti che il download automatico delle dipendenze potrebbe non riuscire se il nome del modulo richiesto non è lo stesso del nome del progetto su drupal.org. Per maggiori informazioni, vedi la mia risposta originale per Drush 4 di seguito.

Risposta originale (Drush 4):

No, non c'è modo di farlo. Il problema è che esiste una differenza tra un modulo e un progetto. Spesso (ma non sempre) il nome del progetto è identico al modulo (o uno dei moduli) contenuto nel progetto. Un singolo progetto (ad es. Views) può contenere più moduli (views, views_ui, views_export). Durante il drush dldownload di un progetto , drush enabilita un modulo .

Quando un modulo dichiara dipendenze, dichiara dipendenze dai moduli, non dai progetti. Durante l'esecuzione di drush en, Drush può verificare se il modulo richiesto è disponibile. Tuttavia, se non è disponibile, Drush non ha modo di sapere quale progetto scaricare. Affinché Drush sia in grado di scaricare automaticamente i progetti richiesti, è necessario lavorare sull'infrastruttura dei progetti / moduli sottostanti, in modo che Drush possa recuperare una mappatura di progetti e moduli. Guarda anche Gestione più intelligente delle dipendenze mancanti .


9

In realtà, drush5 (ancora in fase di sviluppo) ha una mappa di dipendenze note e comuni (content.module, ctools, ...). Quindi effettivamente scarica i ctools per te nel tuo esempio.


6

questo non è più un problema poiché le ultime versioni di drush lo fanno "automagicamente":

The following projects have unmet dependencies:[ok]
answers requires strongarm, references, nodereference_url, nodereference_count, eva
Would you like to download them? (y/n):

2

Alcuni moduli o progetti includono a script drush make , che può scaricare dipendenze e installare librerie esterne.

Tuttavia, questo non è per lo più il caso, e ci sono problemi con l'annidamento degli script di Drush Make. Vale ancora la pena cercare con alcuni dei moduli che sono più complicati da configurare.


1
Penso che intendi "Drush make" ( drupal.org/project/drush_make ) non "Drush build". Ma hai ragione, poiché un file drush make elenca i progetti necessari per la compilazione, è in grado di scaricare dipendenze.
— marcvangend,

2

Prova il modulo di aggiornamento rapido . Scaricherà per te tutti i progetti di dipendenza mancanti.

Ecco una citazione al riguardo (dalla pagina del progetto del modulo):

... fornisce un modo rapido per installare in batch più nuovi progetti o tutti i progetti di dipendenza mancanti.

Drupal core offre un modo per installare il modulo o il tema uno per uno, ma è possibile installare più progetti tramite il modulo Aggiornamento rapido. C'è un'interfaccia utente di amministrazione per cercare più facilmente i progetti più installati.

Il modulo di aggiornamento rapido aggiuntivo trova tutti i progetti di dipendenza mancanti per te, quindi puoi selezionarli tutti dall'interfaccia utente dell'amministratore e installarli in un processo batch.

Il modulo di aggiornamento rapido dipende dal modulo di aggiornamento e utilizza lo stesso flusso di lavoro del modulo di aggiornamento. Pertanto, è possibile eseguire gli aggiornamenti tramite la pagina di aggiornamento dell'amministratore in / admin / reports / updates / update.

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.