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.